mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-05-21 02:08:17 +03:00
Обновление инсталлятора
This commit is contained in:
parent
8a4a5161cd
commit
c09895165c
28
Readme.txt
28
Readme.txt
|
@ -15,36 +15,30 @@
|
|||
*/
|
||||
|
||||
|
||||
LiveStreet 0.4.2
|
||||
LiveStreet 0.5
|
||||
|
||||
УСТАНОВКА
|
||||
1. Скопировать файлы движка в нужный каталог сайта
|
||||
2. Зайти по адресу http://ваш_сайт_на_ls/install/
|
||||
3. Следовать инструкциям установщика.
|
||||
|
||||
ОБНОВЛЕНИЕ С ВЕРСИИ 0.3
|
||||
ОБНОВЛЕНИЕ С ВЕРСИИ 0.4.2
|
||||
0. ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ РЕЗЕРВНЫЕ КОПИИ ВАШЕГО САЙТА И БАЗЫ ДАННЫХ
|
||||
1. Обновить до версии 0.4.2 возможно только базу данных, поэтому копировать новую версию поверх старой НЕЛЬЗЯ, для установки используйте чистый каталог
|
||||
2. Скопировать файлы движка в нужный каталог сайта
|
||||
3. Зайти по адресу http://ваш_сайт_на_ls/install/
|
||||
4. Следовать инструкциям установщика. При создании базы данных обязательно поставить галку "Конвертировать базу 0.3.1 в 0.4.2"
|
||||
|
||||
ОБНОВЛЕНИЕ С ВЕРСИИ 0.4
|
||||
0. ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ РЕЗЕРВНЫЕ КОПИИ ВАШЕГО САЙТА И БАЗЫ ДАННЫХ
|
||||
1. Удалите старые файлы кроме /config/config.local.php, скопируйте новые файлы движка в нужный каталог сайта
|
||||
2. Выполнить SQL патч /install/convert_0.4_to_0.4.2.sql в phpMyAdmin или через консоль MySQL
|
||||
|
||||
ОБНОВЛЕНИЕ С ВЕРСИИ 0.4.1
|
||||
0. ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ РЕЗЕРВНЫЕ КОПИИ ВАШЕГО САЙТА И БАЗЫ ДАННЫХ
|
||||
1. Удалите старые файлы кроме /config/config.local.php, скопируйте новые файлы движка в нужный каталог сайта
|
||||
1.2 Либо вручную внесите изменения в файлы движка, список изменений доступен в SVN проекта http://trac.lsdev.ru/livestreet/
|
||||
|
||||
1. Обновить до версии 0.5 возможно только базу данных, поэтому копировать новую версию поверх старой НЕЛЬЗЯ, для установки используйте чистый каталог
|
||||
2. Скопировать файлы движка в новый нужный каталог сайта
|
||||
3. Скопировать в новый каталог файл config.local.php от вашей старой версии 0.4.2 и скопировать каталог /uploads/ со всеми файлами.
|
||||
4. Зайти по адресу http://ваш_сайт_на_ls/install/
|
||||
5. Следовать инструкциям установщика. При создании базы данных обязательно поставить галку "Конвертировать базу 0.4.2 в 0.5"
|
||||
|
||||
|
||||
КОНФИГУРАЦИЯ И НАСТРОЙКА ДВИЖКА
|
||||
Настройки находятся в файле /config/config.php. Для их изменения желательно переопределять эти настройки в файле config.local.php, это позволит избежать проблем при последующих обновлениях.
|
||||
Управление плагинами находится по адресу /admin/plugins/
|
||||
|
||||
СТАНДАРТНЫЕ ШАБЛОНЫ
|
||||
В версии 0.5 идет в комплекте 4 шаблона: new + developer - на js библиотеке MooTools и new-jquery + developer-jquery - на библиотеке jQuery.
|
||||
В следующих версиях поддерживаться будут только шаблоны new-jquery и developer-jquery, поэтому настоятельно рекомендуем выбрать именно их при установке.
|
||||
|
||||
ВОЗМОЖНОСТИ ПОИСКА ПО САЙТУ
|
||||
LiveStreet поддерживает полнотекстовый поиск по сайту с использованием поискового движка Sphinx.
|
||||
Соответственно если нужен поиск на сайте, то необходимо установить и настроить на сервере Sphinx, пример конфигурационного файла(sphinx.conf) находится в каталоге /install/
|
||||
|
|
|
@ -890,11 +890,11 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
foreach ($aFields as $iId =>$sValue) {
|
||||
$sql = 'SELECT * FROM '.Config::Get('db.table.user_field_value').' WHERE user_id = ?d AND field_id = ?';
|
||||
if ($this->oDb->select($sql, $iUserId, $iId)) {
|
||||
$sql = 'UPDATE '.Config::Get('db.table.user_field_value').' SET value = ? WHERE field_id = ? AND user_id = ?d';
|
||||
$sql = 'UPDATE '.Config::Get('db.table.user_field_value').' SET value = ? WHERE user_id = ?d AND field_id = ?';
|
||||
} else {
|
||||
$sql = 'INSERT INTO '.Config::Get('db.table.user_field_value').' SET value = ?, field_id = ?, user_id = ?d';
|
||||
$sql = 'INSERT INTO '.Config::Get('db.table.user_field_value').' SET value = ?, user_id = ?d, field_id = ?';
|
||||
}
|
||||
$this->oDb->query($sql, $sValue, $iId, $iUserId);
|
||||
$this->oDb->query($sql, $sValue, $iUserId, $iId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
/**
|
||||
* Основные константы
|
||||
*/
|
||||
define('LS_VERSION','0.4.3');
|
||||
define('LS_VERSION','0.5');
|
||||
define('SYS_HACKER_CONSOLE',false);
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,184 +0,0 @@
|
|||
--
|
||||
-- Структура таблицы `prefix_session`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_session` (
|
||||
`session_key` varchar(32) NOT NULL,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`session_ip_create` varchar(15) NOT NULL,
|
||||
`session_ip_last` varchar(15) NOT NULL,
|
||||
`session_date_create` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`session_date_last` datetime NOT NULL,
|
||||
PRIMARY KEY (`session_key`),
|
||||
UNIQUE KEY `user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа сохраненных таблиц
|
||||
--
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_session`
|
||||
--
|
||||
ALTER TABLE `prefix_session`
|
||||
ADD CONSTRAINT `prefix_session_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `prefix_user` DROP `user_key` ;
|
||||
ALTER TABLE `prefix_user` DROP `user_date_last` ;
|
||||
ALTER TABLE `prefix_user` DROP `user_ip_last` ;
|
||||
|
||||
ALTER TABLE `prefix_friend` DROP FOREIGN KEY `prefix_frend_fk1`;
|
||||
ALTER TABLE `prefix_friend` CHANGE `user_frend_id` `user_friend_id` INT( 11 ) UNSIGNED;
|
||||
ALTER TABLE `prefix_friend` ADD CONSTRAINT `prefix_friend_ibfk_1` FOREIGN KEY (`user_friend_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
|
||||
ALTER TABLE `prefix_topic_comment` ADD `comment_publish` TINYINT( 1 ) DEFAULT '1' NOT NULL ;
|
||||
ALTER TABLE `prefix_topic_comment` DROP FOREIGN KEY `topic_comment_fk`;
|
||||
ALTER TABLE `prefix_topic_comment` CHANGE `topic_id` `target_id` INT( 11 ) UNSIGNED;
|
||||
ALTER TABLE `prefix_topic_comment` ADD `target_type` ENUM( "topic", "talk" ) DEFAULT 'topic' NOT NULL AFTER `target_id` ;
|
||||
|
||||
ALTER TABLE `prefix_topic_comment_online` DROP FOREIGN KEY `prefix_topic_comment_online_fk`;
|
||||
ALTER TABLE `prefix_topic_comment_online` CHANGE `topic_id` `target_id` INT( 11 ) UNSIGNED DEFAULT NULL ;
|
||||
ALTER TABLE `prefix_topic_comment_online` ADD `target_type` ENUM( "topic", "talk" ) DEFAULT 'topic' NOT NULL AFTER `target_id` ;
|
||||
|
||||
ALTER TABLE `prefix_topic_comment` RENAME `prefix_comment` ;
|
||||
ALTER TABLE `prefix_topic_comment_online` RENAME `prefix_comment_online` ;
|
||||
|
||||
ALTER TABLE `prefix_topic_vote` RENAME `prefix_vote` ;
|
||||
ALTER TABLE `prefix_vote` DROP FOREIGN KEY `prefix_topic_vote_fk`;
|
||||
ALTER TABLE `prefix_vote` CHANGE `topic_id` `target_id` INT( 11 ) UNSIGNED;
|
||||
ALTER TABLE `prefix_vote` ADD `target_type` ENUM( "topic", "blog", "user", "comment" ) DEFAULT 'topic' NOT NULL AFTER `target_id` ;
|
||||
ALTER TABLE `prefix_vote` CHANGE `vote_delta` `vote_direction` TINYINT( 2 ) DEFAULT '0';
|
||||
ALTER TABLE `prefix_vote` ADD `vote_value` FLOAT( 9, 3 ) DEFAULT '0' NOT NULL ;
|
||||
ALTER TABLE `prefix_vote` ADD `vote_date` DATETIME NOT NULL ;
|
||||
ALTER TABLE `prefix_vote` DROP INDEX `topic_id_user_voter_id_uniq` ;
|
||||
ALTER TABLE `prefix_vote` DROP INDEX `topic_id` ;
|
||||
ALTER TABLE `prefix_vote` ADD PRIMARY KEY ( `target_id` , `target_type` , `user_voter_id` ) ;
|
||||
|
||||
|
||||
ALTER TABLE `prefix_talk` ADD `talk_count_comment` INT DEFAULT '0' NOT NULL ;
|
||||
ALTER TABLE `prefix_talk_user` ADD `comment_id_last` INT DEFAULT '0' NOT NULL ;
|
||||
ALTER TABLE `prefix_talk_user` ADD `comment_count_new` INT DEFAULT '0' NOT NULL ;
|
||||
--
|
||||
-- Переход на единую систему избранного
|
||||
--
|
||||
ALTER TABLE `prefix_favourite_topic` RENAME `prefix_favourite`;
|
||||
ALTER TABLE `prefix_favourite` DROP FOREIGN KEY `prefix_favourite_topic_fk1`;
|
||||
ALTER TABLE `prefix_favourite` DROP FOREIGN KEY `prefix_favourite_topic_fk`;
|
||||
ALTER TABLE `prefix_favourite` DROP INDEX `topic_id`;
|
||||
ALTER TABLE `prefix_favourite` DROP INDEX `topic_publish`;
|
||||
ALTER TABLE `prefix_favourite` CHANGE `topic_id` `target_id` INT( 11 ) UNSIGNED;
|
||||
ALTER TABLE `prefix_favourite` CHANGE `topic_publish` `target_publish` TINYINT( 1 ) DEFAULT '1';
|
||||
ALTER TABLE `prefix_favourite` ADD `target_type` ENUM( 'topic', 'comment' ) DEFAULT 'topic' NOT NULL AFTER `target_id` ;
|
||||
ALTER TABLE `prefix_favourite` DROP INDEX `user_id_topic_id`,
|
||||
ADD UNIQUE `user_id_target_id_type` ( `user_id` , `target_id` , `target_type` );
|
||||
ALTER TABLE `prefix_favourite` ADD INDEX `target_publish` ( `target_publish` );
|
||||
ALTER TABLE `prefix_favourite` ADD CONSTRAINT `prefix_favourite_target_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE `prefix_favourite` CHANGE `target_type` `target_type` ENUM( 'topic', 'comment', 'talk' ) DEFAULT 'topic';
|
||||
|
||||
ALTER TABLE `prefix_talk_user` ADD `talk_user_active` TINYINT( 1 ) DEFAULT '1';
|
||||
|
||||
CREATE TABLE `prefix_talk_blacklist` (
|
||||
`user_id` INT UNSIGNED NOT NULL ,
|
||||
`user_target_id` INT UNSIGNED NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE `prefix_talk_blacklist` ADD PRIMARY KEY ( `user_id` , `user_target_id` );
|
||||
ALTER TABLE `prefix_talk_blacklist` ADD CONSTRAINT `prefix_talk_blacklist_fk_user` FOREIGN KEY ( `user_id` ) REFERENCES `prefix_user` ( `user_id` ) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE `prefix_talk_blacklist` ADD CONSTRAINT `prefix_talk_blacklist_fk_target` FOREIGN KEY ( `user_target_id` ) REFERENCES `prefix_user` ( `user_id` ) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
|
||||
|
||||
ALTER TABLE `prefix_friend`
|
||||
DROP FOREIGN KEY `prefix_frend_fk`,
|
||||
DROP FOREIGN KEY `prefix_friend_ibfk_1`;
|
||||
|
||||
ALTER TABLE `prefix_friend` DROP INDEX `user_id`;
|
||||
ALTER TABLE `prefix_friend` DROP INDEX `user_frend_id`;
|
||||
ALTER TABLE `prefix_friend` DROP INDEX `user_id_fren_id`;
|
||||
ALTER TABLE `prefix_friend` CHANGE `user_id` `user_from` INT( 11 ) UNSIGNED;
|
||||
ALTER TABLE `prefix_friend` CHANGE `user_friend_id` `user_to` INT( 11 ) UNSIGNED DEFAULT NULL;
|
||||
ALTER TABLE `prefix_friend` ADD `status_from` INT( 4 ) NOT NULL ;
|
||||
ALTER TABLE `prefix_friend` ADD `status_to` INT( 4 ) NOT NULL ;
|
||||
ALTER TABLE `prefix_friend` ADD PRIMARY KEY ( `user_from` , `user_to` );
|
||||
ALTER TABLE `prefix_friend` ADD INDEX ( `user_from` );
|
||||
ALTER TABLE `prefix_friend` ADD INDEX ( `user_to` );
|
||||
ALTER TABLE `prefix_friend` ADD CONSTRAINT `prefix_friend_from_fk` FOREIGN KEY (`user_from`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE `prefix_friend` ADD CONSTRAINT `prefix_friend_to_fk` FOREIGN KEY (`user_to`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
--
|
||||
-- Хранение заданий на отложенную отправку e-mail сообщений
|
||||
--
|
||||
CREATE TABLE `prefix_notify_task` (
|
||||
`notify_task_id` INT UNSIGNED AUTO_INCREMENT ,
|
||||
`user_login` VARCHAR( 30 ) ,
|
||||
`user_mail` VARCHAR( 50 ) ,
|
||||
`notify_subject` VARCHAR( 200 ) ,
|
||||
`notify_text` TEXT,
|
||||
`date_created` DATETIME,
|
||||
`notify_task_status` TINYINT( 2 ) UNSIGNED,
|
||||
PRIMARY KEY ( `notify_task_id` )
|
||||
) ENGINE=InnoDB DEFAULT CHARSET = utf8;
|
||||
|
||||
|
||||
ALTER TABLE `prefix_blog_user` ADD `user_role` INT( 3 ) NOT NULL ;
|
||||
ALTER TABLE `prefix_blog_user` CHANGE `user_role` `user_role` INT( 3 ) DEFAULT '1';
|
||||
|
||||
ALTER TABLE `prefix_user` CHANGE `user_profile_avatar` `user_profile_avatar` VARCHAR( 250 );
|
||||
|
||||
ALTER TABLE `prefix_blog` CHANGE `blog_avatar` `blog_avatar` VARCHAR( 250 );
|
||||
|
||||
ALTER TABLE `prefix_comment` ADD `target_parent_id` INT DEFAULT '0' NOT NULL AFTER `target_type` ;
|
||||
ALTER TABLE `prefix_comment_online` ADD `target_parent_id` INT DEFAULT '0' NOT NULL AFTER `target_type` ;
|
||||
|
||||
ALTER TABLE `prefix_topic` CHANGE `topic_tags` `topic_tags` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
|
||||
|
||||
|
||||
ALTER TABLE `prefix_comment` DROP INDEX `rating_date_id`;
|
||||
ALTER TABLE `prefix_comment` DROP INDEX `topic_id`;
|
||||
ALTER TABLE `prefix_comment` DROP INDEX `comment_delete`;
|
||||
ALTER TABLE `prefix_comment` DROP INDEX `comment_date`;
|
||||
|
||||
ALTER TABLE `prefix_comment` ADD INDEX `type_date_rating` ( `target_type` , `comment_date` , `comment_rating` );
|
||||
ALTER TABLE `prefix_comment` ADD INDEX `id_type` ( `target_id` , `target_type` );
|
||||
ALTER TABLE `prefix_comment` ADD INDEX `type_delete_publish` ( `target_type` , `comment_delete` , `comment_publish` );
|
||||
ALTER TABLE `prefix_comment` ADD INDEX `user_type` ( `user_id` , `target_type` );
|
||||
ALTER TABLE `prefix_comment` ADD INDEX ( `target_parent_id` );
|
||||
|
||||
ALTER TABLE `prefix_comment` DROP INDEX `user_id`;
|
||||
|
||||
ALTER TABLE `prefix_comment_online` DROP INDEX `topic_id`;
|
||||
ALTER TABLE `prefix_comment_online` ADD INDEX `id_type` ( `target_id` , `target_type` );
|
||||
ALTER TABLE `prefix_comment_online` ADD INDEX `type_parent` ( `target_type` , `target_parent_id` );
|
||||
|
||||
ALTER TABLE `prefix_favourite` DROP INDEX `user_id`;
|
||||
ALTER TABLE `prefix_favourite` ADD INDEX `id_type` ( `target_id` , `target_type` );
|
||||
|
||||
ALTER TABLE `prefix_friend` DROP INDEX `user_from`;
|
||||
|
||||
ALTER TABLE `prefix_notify_task` ADD INDEX ( `date_created` );
|
||||
|
||||
ALTER TABLE `prefix_comment_online` DROP INDEX `id_type` ,
|
||||
ADD UNIQUE `id_type` ( `target_id` , `target_type` );
|
||||
|
||||
ALTER TABLE `prefix_talk` ADD INDEX ( `talk_title` );
|
||||
ALTER TABLE `prefix_talk` ADD INDEX ( `talk_date` );
|
||||
ALTER TABLE `prefix_talk` ADD INDEX ( `talk_date_last` );
|
||||
|
||||
ALTER TABLE `prefix_talk_user` DROP INDEX `talk_id`;
|
||||
ALTER TABLE `prefix_talk_user` ADD INDEX ( `date_last` );
|
||||
ALTER TABLE `prefix_talk_user` ADD INDEX ( `talk_user_active` );
|
||||
|
||||
ALTER TABLE `prefix_topic_read` DROP INDEX `topic_id`;
|
||||
ALTER TABLE `prefix_topic_question_vote` DROP INDEX `topic_id`;
|
||||
ALTER TABLE `prefix_topic` ADD INDEX ( `topic_text_hash` );
|
||||
|
||||
ALTER TABLE `prefix_session` ADD INDEX ( `session_date_last` );
|
||||
ALTER TABLE `prefix_user` DROP INDEX `user_date_last`;
|
||||
|
||||
ALTER TABLE `prefix_topic_content` CHANGE `topic_text` `topic_text` LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
|
||||
ALTER TABLE `prefix_topic_content` CHANGE `topic_text_source` `topic_text_source` LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
|
||||
|
||||
ALTER TABLE `prefix_page` ADD `page_main` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0',
|
||||
ADD INDEX ( `page_main` );
|
||||
ALTER TABLE `prefix_page` ADD `page_sort` INT NOT NULL ,
|
||||
ADD INDEX ( `page_sort` );
|
|
@ -1,6 +0,0 @@
|
|||
ALTER TABLE `prefix_comment` ADD `comment_left` INT NOT NULL AFTER `comment_pid`;
|
||||
ALTER TABLE `prefix_comment` ADD `comment_right` INT NOT NULL AFTER `comment_left`;
|
||||
ALTER TABLE `prefix_comment` ADD `comment_level` INT NOT NULL AFTER `comment_right`;
|
||||
ALTER TABLE `prefix_comment` ADD INDEX ( `comment_left` );
|
||||
ALTER TABLE `prefix_comment` ADD INDEX ( `comment_right` );
|
||||
ALTER TABLE `prefix_comment` ADD INDEX ( `comment_level` );
|
91
install/convert_0.4.2_to_0.5.sql
Normal file
91
install/convert_0.4.2_to_0.5.sql
Normal file
|
@ -0,0 +1,91 @@
|
|||
CREATE TABLE IF NOT EXISTS `prefix_stream_event` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_type` varchar(100) NOT NULL,
|
||||
`target_id` int(11) NOT NULL,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`date_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `event_type` (`event_type`,`user_id`),
|
||||
KEY `user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_stream_subscribe` (
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`target_user_id` int(11) NOT NULL,
|
||||
KEY `user_id` (`user_id`,`target_user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_stream_user_type` (
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`event_type` varchar(100) DEFAULT NULL,
|
||||
KEY `user_id` (`user_id`,`event_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_topic_photo` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`topic_id` int(11) unsigned NOT NULL,
|
||||
`path` varchar(255) NOT NULL,
|
||||
`description` text,
|
||||
`target_tmp` varchar(40) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `topic_id` (`topic_id`),
|
||||
KEY `target_tmp` (`target_tmp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_userfeed_subscribe` (
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`subscribe_type` tinyint(4) NOT NULL,
|
||||
`target_id` int(11) NOT NULL,
|
||||
KEY `user_id` (`user_id`,`subscribe_type`,`target_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_user_field` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`pattern` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_user_field_value` (
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`field_id` int(11) DEFAULT NULL,
|
||||
`value` varchar(255) DEFAULT NULL,
|
||||
KEY `user_id` (`user_id`,`field_id`),
|
||||
KEY `field_id` (`field_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
|
||||
ALTER TABLE `prefix_comment` ADD `comment_left` INT NOT NULL AFTER `comment_pid`;
|
||||
ALTER TABLE `prefix_comment` ADD `comment_right` INT NOT NULL AFTER `comment_left`;
|
||||
ALTER TABLE `prefix_comment` ADD `comment_level` INT NOT NULL AFTER `comment_right`;
|
||||
ALTER TABLE `prefix_comment` ADD INDEX ( `comment_left` );
|
||||
ALTER TABLE `prefix_comment` ADD INDEX ( `comment_right` );
|
||||
ALTER TABLE `prefix_comment` ADD INDEX ( `comment_level` );
|
||||
|
||||
-- Добавляет новый тип топика 'photoset', этот запрос автоматически выполняется через инсталлятор при конвертации БД (для сохранения ваших кастомных типов топиков)
|
||||
-- ALTER TABLE `prefix_topic` CHANGE topic_type topic_type ENUM('topic','link','question','photoset') NOT NULL DEFAULT 'topic';
|
||||
--
|
||||
|
||||
|
||||
|
||||
ALTER TABLE `prefix_stream_event`
|
||||
ADD CONSTRAINT `prefix_stream_event_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `prefix_stream_subscribe`
|
||||
ADD CONSTRAINT `prefix_stream_subscribe_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `prefix_stream_user_type`
|
||||
ADD CONSTRAINT `prefix_stream_user_type_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `prefix_topic_photo`
|
||||
ADD CONSTRAINT `prefix_topic_photo_ibfk_1` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `prefix_userfeed_subscribe`
|
||||
ADD CONSTRAINT `prefix_userfeed_subscribe_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `prefix_user_field_value`
|
||||
ADD CONSTRAINT `prefix_user_field_value_ibfk_2` FOREIGN KEY (`field_id`) REFERENCES `prefix_user_field` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_user_field_value_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@ -1,4 +0,0 @@
|
|||
ALTER TABLE `prefix_page` ADD `page_main` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0',
|
||||
ADD INDEX ( `page_main` );
|
||||
ALTER TABLE `prefix_page` ADD `page_sort` INT NOT NULL ,
|
||||
ADD INDEX ( `page_sort` );
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
error_reporting(E_ALL);
|
||||
set_time_limit(0);
|
||||
define('LS_VERSION','0.4.2');
|
||||
define('LS_VERSION','0.5.0');
|
||||
|
||||
class Install {
|
||||
/**
|
||||
|
@ -66,43 +66,43 @@ class Install {
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
var $aSteps = array(0=>'Start',1=>'Db',2=>'Admin',3=>'End',4=>'Extend',5=>'Finish');
|
||||
protected $aSteps = array(0=>'Start',1=>'Db',2=>'Admin',3=>'End',4=>'Extend',5=>'Finish');
|
||||
/**
|
||||
* Шаги в обычном режиме инсталляции
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
var $aSimpleModeSteps = array('Start','Db','Admin','End');
|
||||
protected $aSimpleModeSteps = array('Start','Db','Admin','End');
|
||||
/**
|
||||
* Количество шагов, которые необходимо указывать в инсталляционных параметрах
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
var $iStepCount = null;
|
||||
protected $iStepCount = null;
|
||||
/**
|
||||
* Массив сообщений для пользователя
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
var $aMessages = array();
|
||||
protected $aMessages = array();
|
||||
/**
|
||||
* Директория с шаблонами
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
var $sTemplatesDir = 'templates';
|
||||
protected $sTemplatesDir = 'templates';
|
||||
/**
|
||||
* Директория с языковыми файлами инсталлятора
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
var $sLangInstallDir = 'language';
|
||||
protected $sLangInstallDir = 'language';
|
||||
/**
|
||||
* Массив с переменными шаблонизатора
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
var $aTemplateVars = array(
|
||||
protected $aTemplateVars = array(
|
||||
'___CONTENT___' => '',
|
||||
'___FORM_ACTION___' => '',
|
||||
'___NEXT_STEP_DISABLED___' => '',
|
||||
|
@ -117,7 +117,7 @@ class Install {
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
var $aValidEnv = array(
|
||||
protected $aValidEnv = array(
|
||||
'safe_mode' => array ('0','off',''),
|
||||
'register_globals' => array ('0','off',''),
|
||||
'allow_url_fopen' => array ('1','on'),
|
||||
|
@ -131,42 +131,42 @@ class Install {
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
var $sConfigDir="";
|
||||
protected $sConfigDir="";
|
||||
/**
|
||||
* Директория хранения скинов сайта
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
var $sSkinDir="";
|
||||
protected $sSkinDir="";
|
||||
/**
|
||||
* Директория хранения языковых файлов движка
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
var $sLangDir="";
|
||||
protected $sLangDir="";
|
||||
/**
|
||||
* Текущий язык инсталлятора
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
var $sLangCurrent = '';
|
||||
protected $sLangCurrent = '';
|
||||
/**
|
||||
* Язык инсталлятора, который будет использован по умолчанию
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
var $sLangDefault = 'russian';
|
||||
protected $sLangDefault = 'russian';
|
||||
/**
|
||||
* Языковые текстовки
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
var $aLang = array();
|
||||
protected $aLang = array();
|
||||
/**
|
||||
* Инициализация основных настроек
|
||||
*
|
||||
*/
|
||||
function __construct() {
|
||||
public function __construct() {
|
||||
$this->sConfigDir = dirname(__FILE__).'/../config';
|
||||
$this->sSkinDir = dirname(__FILE__).'/../templates/skin';
|
||||
$this->sLangDir = dirname(__FILE__).'/../templates/language';
|
||||
|
@ -191,7 +191,7 @@ class Install {
|
|||
* @access protected
|
||||
* @param string $sLang
|
||||
*/
|
||||
function LoadLanguageFile($sLang) {
|
||||
protected function LoadLanguageFile($sLang) {
|
||||
$sFilePath=$this->sLangInstallDir.'/'.$sLang.'.php';
|
||||
if(!file_exists($sFilePath)) return false;
|
||||
|
||||
|
@ -205,7 +205,7 @@ class Install {
|
|||
* @param array $aParams
|
||||
* @return string
|
||||
*/
|
||||
function Lang($sKey,$aParams=array()) {
|
||||
protected function Lang($sKey,$aParams=array()) {
|
||||
if(!array_key_exists($sKey,$this->aLang))
|
||||
return 'Unknown language key';
|
||||
|
||||
|
@ -223,7 +223,7 @@ class Install {
|
|||
* @param string $sKey
|
||||
* @return mixed
|
||||
*/
|
||||
function GetSessionVar($sKey,$mDefault=null) {
|
||||
protected function GetSessionVar($sKey,$mDefault=null) {
|
||||
return array_key_exists($sKey,$_SESSION) ? unserialize($_SESSION[$sKey]) : $mDefault;
|
||||
}
|
||||
/**
|
||||
|
@ -233,7 +233,7 @@ class Install {
|
|||
* @param mixed $mVar
|
||||
* @return bool
|
||||
*/
|
||||
function SetSessionVar($sKey,$mVar) {
|
||||
protected function SetSessionVar($sKey,$mVar) {
|
||||
$_SESSION[$sKey] = serialize($mVar);
|
||||
return true;
|
||||
}
|
||||
|
@ -243,7 +243,7 @@ class Install {
|
|||
* @param string $sKey
|
||||
* @return bool
|
||||
*/
|
||||
function DestroySessionVar($sKey) {
|
||||
protected function DestroySessionVar($sKey) {
|
||||
if(!array_key_exists($sKey,$_SESSION)) return false;
|
||||
|
||||
unset($_SESSION[$sKey]);
|
||||
|
@ -256,7 +256,7 @@ class Install {
|
|||
* @param string $sTemplateName
|
||||
* @return string
|
||||
*/
|
||||
function Fetch($sTemplateName) {
|
||||
protected function Fetch($sTemplateName) {
|
||||
if(!file_exists($this->sTemplatesDir.'/'.$sTemplateName)) return false;
|
||||
|
||||
$sTemplate = file_get_contents($this->sTemplatesDir.'/'.$sTemplateName);
|
||||
|
@ -268,7 +268,7 @@ class Install {
|
|||
* @param string $sTempString
|
||||
* @return string
|
||||
*/
|
||||
function FetchString($sTempString) {
|
||||
protected function FetchString($sTempString) {
|
||||
return str_replace(array_keys($this->aTemplateVars),array_values($this->aTemplateVars),$sTempString);
|
||||
}
|
||||
/**
|
||||
|
@ -284,7 +284,7 @@ class Install {
|
|||
* @param string $sValue
|
||||
* @param string $sGetFromSession
|
||||
*/
|
||||
function Assign($sName,$sValue,$sFromSession=null) {
|
||||
protected function Assign($sName,$sValue,$sFromSession=null) {
|
||||
if($sFromSession==self::GET_VAR_FROM_SESSION) $sValue=$this->GetSessionVar($sName,$sValue);
|
||||
if($sFromSession==self::SET_VAR_IN_SESSION) $this->SetSessionVar($sName,$sValue);
|
||||
|
||||
|
@ -296,7 +296,7 @@ class Install {
|
|||
* @param string $sTemplate
|
||||
* @return null
|
||||
*/
|
||||
function Layout($sTemplate) {
|
||||
protected function Layout($sTemplate) {
|
||||
if(!$sLayoutContent = $this->Fetch($sTemplate)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -337,7 +337,7 @@ class Install {
|
|||
* @param string $sPath
|
||||
* @return bool
|
||||
*/
|
||||
function SaveConfig($sName,$sVar,$sPath) {
|
||||
protected function SaveConfig($sName,$sVar,$sPath) {
|
||||
if(!file_exists($sPath)) {
|
||||
$this->aMessages[] = array('type'=>'error', 'text'=>$this->Lang('config_file_not_exists',array('path'=>$sPath)));
|
||||
return false;
|
||||
|
@ -369,7 +369,7 @@ class Install {
|
|||
* @param mixed $mVar
|
||||
* @return string
|
||||
*/
|
||||
function ConvertToString($mVar) {
|
||||
protected function ConvertToString($mVar) {
|
||||
switch(true) {
|
||||
case is_string($mVar):
|
||||
return "'".addslashes($mVar)."'";
|
||||
|
@ -397,7 +397,7 @@ class Install {
|
|||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
function GetRequest($sName,$default=null,$bSession=null) {
|
||||
protected function GetRequest($sName,$default=null,$bSession=null) {
|
||||
if (array_key_exists($sName,$_REQUEST)) {
|
||||
$sResult = (is_string($_REQUEST[$sName]))
|
||||
? trim(stripslashes($_REQUEST[$sName]))
|
||||
|
@ -421,7 +421,7 @@ class Install {
|
|||
*
|
||||
* @call $this->Step{__Name__}
|
||||
*/
|
||||
function Run($sStepName=null) {
|
||||
public function Run($sStepName=null) {
|
||||
if(is_null($sStepName)){
|
||||
$sStepName = $this->GetSessionVar(self::SESSSION_KEY_STEP_NAME, self::INSTALL_DEFAULT_STEP);
|
||||
} else {
|
||||
|
@ -470,7 +470,7 @@ class Install {
|
|||
* @access protected
|
||||
* @return bool
|
||||
*/
|
||||
function SetStep($sStepName) {
|
||||
protected function SetStep($sStepName) {
|
||||
if(!$sStepName or !in_array($sStepName,$this->aSteps)) return null;
|
||||
$this->Assign('install_step_number',array_search($sStepName,$this->aSteps)+1);
|
||||
}
|
||||
|
@ -479,7 +479,7 @@ class Install {
|
|||
*
|
||||
* @param int $iStepCount
|
||||
*/
|
||||
function SetStepCount($iStepCount) {
|
||||
protected function SetStepCount($iStepCount) {
|
||||
$this->iStepCount = $iStepCount;
|
||||
}
|
||||
|
||||
|
@ -487,7 +487,7 @@ class Install {
|
|||
* Первый шаг инсталяции.
|
||||
* Валидация окружения.
|
||||
*/
|
||||
function StepStart() {
|
||||
protected function StepStart() {
|
||||
if(!$this->ValidateEnviroment()) {
|
||||
$this->Assign('next_step_disabled', 'disabled');
|
||||
} else {
|
||||
|
@ -507,7 +507,7 @@ class Install {
|
|||
* Запрос данных соединения с базой данных.
|
||||
* Запись полученных данных в лог.
|
||||
*/
|
||||
function StepDb() {
|
||||
protected function StepDb() {
|
||||
if(!$this->GetRequest('install_db_params')) {
|
||||
/**
|
||||
* Получаем данные из сессии (если они туда были вложены на предыдущих итерациях шага)
|
||||
|
@ -622,7 +622,7 @@ class Install {
|
|||
/**
|
||||
* Если указана конвертация старой базы данных
|
||||
*/
|
||||
list($bResult,$aErrors) = array_values($this->ConvertDatabase('convert.sql',$aParams));
|
||||
list($bResult,$aErrors) = array_values($this->ConvertDatabase('convert_0.4.2_to_0.5.sql',$aParams));
|
||||
if(!$bResult) {
|
||||
foreach($aErrors as $sError) $this->aMessages[] = array('type'=>'error','text'=>$sError);
|
||||
$this->Layout('steps/db.tpl');
|
||||
|
@ -650,7 +650,7 @@ class Install {
|
|||
* Запрос данных администратора и сохранение их в базе данных
|
||||
*
|
||||
*/
|
||||
function StepAdmin() {
|
||||
protected function StepAdmin() {
|
||||
$this->SetSessionVar(self::SESSSION_KEY_STEP_NAME,'Admin');
|
||||
$this->SetStep('Admin');
|
||||
/**
|
||||
|
@ -708,7 +708,7 @@ class Install {
|
|||
/**
|
||||
* Завершающий этап. Переход в расширенный режим
|
||||
*/
|
||||
function StepEnd() {
|
||||
protected function StepEnd() {
|
||||
$this->SetStep('End');
|
||||
$this->Assign('next_step_display','none');
|
||||
$this->SetSessionVar(self::SESSSION_KEY_STEP_NAME,'End');
|
||||
|
@ -722,7 +722,7 @@ class Install {
|
|||
/**
|
||||
* Расширенный режим ввода дополнительных настроек.
|
||||
*/
|
||||
function StepExtend() {
|
||||
protected function StepExtend() {
|
||||
/**
|
||||
* Выводим на экран кнопку @Next
|
||||
*/
|
||||
|
@ -920,7 +920,7 @@ class Install {
|
|||
/**
|
||||
* Окончание работы инсталлятора. Предупреждение о необходимости удаления.
|
||||
*/
|
||||
function StepFinish() {
|
||||
protected function StepFinish() {
|
||||
$this->SetStep('Finish');
|
||||
$this->Assign('next_step_display','none');
|
||||
$this->SetSessionVar(self::SESSSION_KEY_STEP_NAME,'Finish');
|
||||
|
@ -931,7 +931,7 @@ class Install {
|
|||
*
|
||||
* @return bool
|
||||
*/
|
||||
function ValidateEnviroment() {
|
||||
protected function ValidateEnviroment() {
|
||||
$bOk = true;
|
||||
|
||||
if(!version_compare(PHP_VERSION, '5.1.2', '>=')) {
|
||||
|
@ -1042,7 +1042,7 @@ class Install {
|
|||
* @param array $aParams
|
||||
* @return mixed
|
||||
*/
|
||||
function ValidateDBConnection($aParams) {
|
||||
protected function ValidateDBConnection($aParams) {
|
||||
$oDb = @mysql_connect($aParams['server'].':'.$aParams['port'],$aParams['user'],$aParams['password']);
|
||||
if( $oDb ) {
|
||||
/**
|
||||
|
@ -1067,7 +1067,7 @@ class Install {
|
|||
* @param bool $bCreate
|
||||
* @return bool
|
||||
*/
|
||||
function SelectDatabase($sName,$bCreate=false) {
|
||||
protected function SelectDatabase($sName,$bCreate=false) {
|
||||
if(@mysql_select_db($sName)) return true;
|
||||
|
||||
if($bCreate){
|
||||
|
@ -1082,7 +1082,7 @@ class Install {
|
|||
* @param string $sFilePath
|
||||
* @return array
|
||||
*/
|
||||
function CreateTables($sFilePath,$aParams) {
|
||||
protected function CreateTables($sFilePath,$aParams) {
|
||||
$sFileQuery = @file_get_contents($sFilePath);
|
||||
if(!$sFileQuery) return array('result'=>false,'errors'=>array($this->Lang("config_file_not_exists", array('path'=>$sFilePath))));
|
||||
|
||||
|
@ -1137,7 +1137,7 @@ class Install {
|
|||
* @param array $aParams
|
||||
* @return bool
|
||||
*/
|
||||
function ValidateConvertDatabase($aParams) {
|
||||
protected function ValidateConvertDatabase($aParams) {
|
||||
/**
|
||||
* Проверяем, нуждается ли база в конвертации или нет
|
||||
* Смотрим, какие таблицы существуют в базе данных
|
||||
|
@ -1156,11 +1156,11 @@ class Install {
|
|||
return !in_array($aParams['prefix'].'comment',$aDbTables);
|
||||
}
|
||||
/**
|
||||
* Конвертирует базу данных версии 0.3.1 в базу данных версии 0.4
|
||||
* Конвертирует базу данных версии 0.4.2 в базу данных версии 0.5
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function ConvertDatabase($sFilePath,$aParams) {
|
||||
protected function ConvertDatabase($sFilePath,$aParams) {
|
||||
if(!$this->ValidateConvertDatabase($aParams)) {
|
||||
return array('result'=>true,'errors'=>array($this->Lang("error_database_converted_already")));
|
||||
}
|
||||
|
@ -1191,242 +1191,43 @@ class Install {
|
|||
}
|
||||
}
|
||||
/**
|
||||
* Обновляем пути до аватаров и фото у юзеров
|
||||
* Добавляем новый тип топика
|
||||
*/
|
||||
$sTable=$aParams['prefix'].'user';
|
||||
if($aResults = mysql_query("SELECT * FROM {$sTable}")){
|
||||
while($aRow = mysql_fetch_assoc($aResults)) {
|
||||
if ($aRow['user_profile_avatar']==0) {
|
||||
$sSqlUpdate="UPDATE {$sTable} SET user_profile_avatar = NULL WHERE user_id={$aRow['user_id']}";
|
||||
} else {
|
||||
$sAvatarPath=$this->GetPathRootWeb().'/uploads/images/'.$aRow['user_id'].'/avatar_100x100.'.$aRow['user_profile_avatar_type'];
|
||||
$sAvatarPath=mysql_escape_string($sAvatarPath);
|
||||
$sSqlUpdate="UPDATE {$sTable} SET user_profile_avatar = '{$sAvatarPath}' WHERE user_id={$aRow['user_id']}";
|
||||
}
|
||||
if(!mysql_query($sSqlUpdate)) $aErrors[] = mysql_error();
|
||||
|
||||
if ($aRow['user_profile_foto']) {
|
||||
$sAvatarPath=$this->GetPathRootWeb().$aRow['user_profile_foto'];
|
||||
$sAvatarPath=mysql_escape_string($sAvatarPath);
|
||||
$sSqlUpdate="UPDATE {$sTable} SET user_profile_foto = '{$sAvatarPath}' WHERE user_id={$aRow['user_id']}";
|
||||
if(!mysql_query($sSqlUpdate)) $aErrors[] = mysql_error();
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Удаляем поле user_profile_avatar_type
|
||||
*/
|
||||
if(!mysql_query("ALTER TABLE `{$sTable}` DROP `user_profile_avatar_type`;")) $aErrors[] = mysql_error();
|
||||
|
||||
/**
|
||||
* Обновляем пути до аватаров у блогов
|
||||
*/
|
||||
$sTable=$aParams['prefix'].'blog';
|
||||
if($aResults = mysql_query("SELECT * FROM {$sTable}")){
|
||||
while($aRow = mysql_fetch_assoc($aResults)) {
|
||||
if ($aRow['blog_avatar']==0) {
|
||||
$sSqlUpdate="UPDATE {$sTable} SET blog_avatar = NULL WHERE blog_id={$aRow['blog_id']}";
|
||||
} else {
|
||||
$sAvatarPath=$this->GetPathRootWeb().'/uploads/images/'.$aRow['user_owner_id'].'/avatar_blog_'.$aRow['blog_url'].'_48x48.'.$aRow['blog_avatar_type'];
|
||||
$sAvatarPath=mysql_escape_string($sAvatarPath);
|
||||
$sSqlUpdate="UPDATE {$sTable} SET blog_avatar = '{$sAvatarPath}' WHERE blog_id={$aRow['blog_id']}";
|
||||
}
|
||||
if(!mysql_query($sSqlUpdate)) $aErrors[] = mysql_error();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Удаляем поле blog_avatar_type
|
||||
*/
|
||||
if(!mysql_query("ALTER TABLE `{$sTable}` DROP `blog_avatar_type`;")) $aErrors[] = mysql_error();
|
||||
|
||||
|
||||
/**
|
||||
* Переводим в одну таблицу vote`ы
|
||||
*/
|
||||
$aVoteTables = array(
|
||||
$aParams['prefix'].'blog_vote'=>'blog',
|
||||
$aParams['prefix'].'user_vote'=>'user',
|
||||
$aParams['prefix'].'topic_comment_vote'=>'comment'
|
||||
);
|
||||
foreach ($aVoteTables as $sTable=>$sTarget) {
|
||||
$sVoteSelect = "SELECT * FROM {$sTable} WHERE 1";
|
||||
if(!$aResults = mysql_query($sVoteSelect)){
|
||||
$aErrors[] = $this->Lang('error_table_select',array('table'=>$sTable));
|
||||
continue;
|
||||
}
|
||||
/**
|
||||
* Переносим в новую таблицу с указанием target`а
|
||||
*/
|
||||
while($aRow = mysql_fetch_array($aResults, MYSQL_ASSOC)) {
|
||||
$sQuery = "INSERT INTO `{$aParams['prefix']}vote`
|
||||
SET
|
||||
target_id = '{$aRow[$sTarget.'_id']}',
|
||||
target_type = '{$sTarget}',
|
||||
user_voter_id = '{$aRow['user_voter_id']}',
|
||||
vote_direction = '".(($aRow['vote_delta']>=0)?1:-1)."',
|
||||
vote_value = '{$aRow['vote_delta']}',
|
||||
vote_date = '".date("Y-m-d H:i:s")."'";
|
||||
if(!mysql_query($sQuery)) $aErrors[] = mysql_error();
|
||||
}
|
||||
mysql_free_result($aResults);
|
||||
}
|
||||
|
||||
/**
|
||||
* Переводим в одну таблицу комментарии
|
||||
*/
|
||||
$sCommentIdMaxQuery = "SELECT MAX( comment_id ) AS max_id FROM {$aParams['prefix']}comment";
|
||||
/**
|
||||
* Получаем максимальный идентификатор комментариев к топикам
|
||||
*/
|
||||
if(!$aResults = mysql_query($sCommentIdMaxQuery) ){
|
||||
$aErrors[] = $this->Lang('error_table_select',array('table'=>'comments'));
|
||||
} else {
|
||||
$aRow=mysql_fetch_row($aResults);
|
||||
$iMaxId = $aRow[0]+1;
|
||||
|
||||
$sTalkCommentSelect = "SELECT * FROM {$aParams['prefix']}talk_comment";
|
||||
if(!$aResults = mysql_query($sTalkCommentSelect)){
|
||||
$aErrors[] = $this->Lang('error_table_select', array('table'=>'talk_comment'));
|
||||
} else {
|
||||
$iAutoIncrement = $iMaxId;
|
||||
while($aRow = mysql_fetch_array($aResults, MYSQL_ASSOC)) {
|
||||
$aRow['talk_comment_id']+=$iMaxId;
|
||||
/**
|
||||
* Выбираем максимальный айдишник
|
||||
*/
|
||||
$iAutoIncrement = ($aRow['talk_comment_id']>$iAutoIncrement)
|
||||
? $aRow['talk_comment_id']
|
||||
: $iAutoIncrement;
|
||||
|
||||
$aRow['talk_comment_pid']= is_int($aRow['talk_comment_pid']) ? $aRow['talk_comment_id']+$iMaxId : "NULL";
|
||||
$sQuery = "INSERT INTO `{$aParams['prefix']}comment`
|
||||
SET
|
||||
comment_id = '{$aRow['talk_comment_id']}',
|
||||
comment_pid = {$aRow['talk_comment_pid']},
|
||||
target_id = '{$aRow['talk_id']}',
|
||||
target_type = 'talk',
|
||||
target_parent_id = '0',
|
||||
user_id = '{$aRow['user_id']}',
|
||||
comment_text = '".mysql_real_escape_string($aRow['talk_comment_text'])."',
|
||||
comment_text_hash = '".md5($aRow['talk_comment_text'])."',
|
||||
comment_date = '{$aRow['talk_comment_date']}',
|
||||
comment_user_ip = '{$aRow['talk_comment_user_ip']}',
|
||||
comment_rating = '0',
|
||||
comment_count_vote = '0',
|
||||
comment_delete = '0',
|
||||
comment_publish = '1' ";
|
||||
if(!mysql_query($sQuery)) $aErrors[] = mysql_error();
|
||||
}
|
||||
$iAutoIncrement++;
|
||||
/**
|
||||
* Устанавливаем в таблице новое значение авто инкремента
|
||||
*/
|
||||
@mysql_query("ALTER {$aParams['prefix']}comment AUTO_INCREMENT={$iAutoIncrement}");
|
||||
mysql_free_result($aResults);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Обновляем количество комментариев к письмам
|
||||
*/
|
||||
$sTalkSql = "SELECT talk_id FROM {$aParams['prefix']}talk";
|
||||
if($aResults = mysql_query($sTalkSql)){
|
||||
while($aRow = mysql_fetch_assoc($aResults)) {
|
||||
$sTalkCountSql = "SELECT count(comment_id) as c FROM {$aParams['prefix']}comment WHERE `target_id`={$aRow['talk_id']} AND `target_type`='talk'";
|
||||
if($aResultsCount = mysql_query($sTalkCountSql) and $aRowCount = mysql_fetch_assoc($aResultsCount)){
|
||||
mysql_query("UPDATE {$aParams['prefix']}talk SET talk_count_comment = {$aRowCount['c']} WHERE talk_id = {$aRow['talk_id']} ");
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Для каждого комментария к топику указываем соответствующий ему идентификатор блога
|
||||
*/
|
||||
$sParentUpdateQuery = "
|
||||
UPDATE `{$aParams['prefix']}comment`
|
||||
SET `target_parent_id` =
|
||||
( SELECT blog_id FROM `{$aParams['prefix']}topic` as t WHERE t.topic_id=target_id )
|
||||
WHERE `target_type` = 'topic'
|
||||
";
|
||||
if(!mysql_query($sParentUpdateQuery))
|
||||
$aErrors[] = mysql_error();
|
||||
|
||||
/**
|
||||
* Выбираем пары взаимной дружбы и заносим в базу данынх
|
||||
*/
|
||||
$sFriendsQuery = "SELECT * FROM {$aParams['prefix']}friend";
|
||||
/**
|
||||
* Получаем максимальный идентификатор комментариев к топикам
|
||||
*/
|
||||
if(!$aResults = mysql_query($sFriendsQuery) ){
|
||||
$aErrors[] = $this->Lang('error_freind_table_select');
|
||||
} else {
|
||||
/**
|
||||
* Архив для хранения индексов "не использованых" строк таблицы
|
||||
*/
|
||||
$aFriends=array();
|
||||
while($aRow = mysql_fetch_array($aResults, MYSQL_ASSOC)) {
|
||||
/**
|
||||
* Если имеется запись с френдами, стоящими в обратном порядке,
|
||||
* то вторую запись удаляем, первую приводим к нормальным статусам
|
||||
*/
|
||||
$sRevIndex = $aRow['user_to'].'_'.$aRow['user_from'];
|
||||
|
||||
$iPosition=array_search($sRevIndex, $aFriends);
|
||||
if($iPosition!==false) {
|
||||
/**
|
||||
* Обновляем статусы
|
||||
*/
|
||||
if(!mysql_query("UPDATE {$aParams['prefix']}friend SET status_from=1, status_to=2 WHERE user_from='{$aRow['user_to']}' AND user_to='{$aRow['user_from']}'"))
|
||||
$aErrors[] = mysql_error();
|
||||
/**
|
||||
* Удаляем дубль-строку
|
||||
*/
|
||||
if(!mysql_query("DELETE FROM {$aParams['prefix']}friend WHERE user_from='{$aRow['user_from']}' AND user_to='{$aRow['user_to']}'"))
|
||||
$aErrors[] = mysql_error();
|
||||
/**
|
||||
* Удаляем значение из списка индексов
|
||||
*/
|
||||
unset($aFriends[$iPosition]);
|
||||
} else {
|
||||
$aFriends[] = $aRow['user_from'].'_'.$aRow['user_to'];
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Если остались индексы, удаляем соответствующие им строки
|
||||
*/
|
||||
if(count($aFriends)>0) {
|
||||
foreach ($aFriends as $sIndex) {
|
||||
list($sFrom,$sTo)=explode('_',$sIndex,2);
|
||||
if(!mysql_query("DELETE FROM {$aParams['prefix']}friend WHERE user_from='{$sFrom}' AND user_to='{$sTo}'"))
|
||||
$aErrors[] = mysql_error();
|
||||
}
|
||||
}
|
||||
mysql_free_result($aResults);
|
||||
}
|
||||
|
||||
/**
|
||||
* Конвертируем пользователей блогов в роли
|
||||
*/
|
||||
$sTable=$aParams['prefix'].'blog_user';
|
||||
mysql_query("UPDATE {$sTable} SET user_role = 1 WHERE is_moderator = 0 AND is_administrator = 0 ");
|
||||
mysql_query("UPDATE {$sTable} SET user_role = 2 WHERE is_moderator = 1 ");
|
||||
mysql_query("UPDATE {$sTable} SET user_role = 4 WHERE is_administrator = 1 ");
|
||||
/**
|
||||
* Удаляем старые поля
|
||||
*/
|
||||
if(!mysql_query("ALTER TABLE `{$sTable}` DROP `is_moderator`, DROP `is_administrator`;")) $aErrors[] = mysql_error();
|
||||
|
||||
$this->addEnumTypeDatabase($aParams['prefix'].$sTableName,'topic_type','photoset');
|
||||
|
||||
if(count($aErrors)==0) {
|
||||
return array('result'=>true,'errors'=>null);
|
||||
}
|
||||
return array('result'=>false,'errors'=>$aErrors);
|
||||
}
|
||||
/**
|
||||
* Добавление значения в поле таблицы с типом enum
|
||||
*
|
||||
* @param unknown_type $sTableName
|
||||
* @param unknown_type $sFieldName
|
||||
* @param unknown_type $sType
|
||||
*/
|
||||
public function addEnumTypeDatabase($sTableName,$sFieldName,$sType) {
|
||||
$sQuery="SHOW COLUMNS FROM `{$sTableName}`";
|
||||
if ($res=mysql_query($sQuery)) {
|
||||
while($aRow = mysql_fetch_assoc($res)) {
|
||||
if ($aRow['Field'] == $sFieldName) break;
|
||||
}
|
||||
if (strpos($aRow['Type'], "'{$sType}'") === FALSE) {
|
||||
$aRow['Type'] =str_ireplace('enum(', "enum('{$sType}',", $aRow['Type']);
|
||||
$sQuery="ALTER TABLE `{$sTableName}` MODIFY `{$sFieldName}` ".$aRow['Type'];
|
||||
$sQuery.= ($aRow['Null']=='NO') ? ' NOT NULL ' : ' NULL ';
|
||||
$sQuery.= is_null($aRow['Default']) ? ' DEFAULT NULL ' : " DEFAULT '{$aRow['Default']}' ";
|
||||
mysql_query($sQuery);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Валидирует данные администратора
|
||||
*
|
||||
* @return bool;
|
||||
*/
|
||||
function ValidateAdminFields() {
|
||||
protected function ValidateAdminFields() {
|
||||
$bOk = true;
|
||||
$aErrors = array();
|
||||
|
||||
|
@ -1459,7 +1260,7 @@ class Install {
|
|||
* @param string $sPrefix
|
||||
* @return bool
|
||||
*/
|
||||
function UpdateDBUser($sLogin,$sPassword,$sMail,$sPrefix="prefix_") {
|
||||
protected function UpdateDBUser($sLogin,$sPassword,$sMail,$sPrefix="prefix_") {
|
||||
$sQuery = "
|
||||
UPDATE `{$sPrefix}user`
|
||||
SET
|
||||
|
@ -1477,7 +1278,7 @@ class Install {
|
|||
* @param string [$sPrefix = "prefix_"
|
||||
* @return bool
|
||||
*/
|
||||
function UpdateUserBlog($sBlogName,$sPrefix="prefix_") {
|
||||
protected function UpdateUserBlog($sBlogName,$sPrefix="prefix_") {
|
||||
$sQuery = "
|
||||
UPDATE `{$sPrefix}blog`
|
||||
SET
|
||||
|
@ -1493,7 +1294,7 @@ class Install {
|
|||
* @param array $aTables
|
||||
* @return bool
|
||||
*/
|
||||
function IsUseDbTable($sQuery,$aTables) {
|
||||
protected function IsUseDbTable($sQuery,$aTables) {
|
||||
foreach($aTables as $sTable){
|
||||
if(substr_count($sQuery, "`{$sTable}`")) return true;
|
||||
}
|
||||
|
@ -1504,7 +1305,7 @@ class Install {
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
function GetSkinList() {
|
||||
protected function GetSkinList() {
|
||||
/**
|
||||
* Получаем список каталогов
|
||||
*/
|
||||
|
@ -1518,7 +1319,7 @@ class Install {
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
function GetLangList() {
|
||||
protected function GetLangList() {
|
||||
/**
|
||||
* Получаем список каталогов
|
||||
*/
|
||||
|
@ -1533,7 +1334,7 @@ class Install {
|
|||
* @access protected
|
||||
* @return null
|
||||
*/
|
||||
function SavePath() {
|
||||
protected function SavePath() {
|
||||
$sLocalConfigFile = $this->sConfigDir.'/'.self::LOCAL_CONFIG_FILE_NAME;
|
||||
$this->SaveConfig('path.root.web',$this->GetPathRootWeb(), $sLocalConfigFile);
|
||||
$this->SaveConfig('path.root.server', $this->GetPathRootServer(), $sLocalConfigFile);
|
||||
|
@ -1546,11 +1347,11 @@ class Install {
|
|||
$this->SaveConfig('path.offset_request_url', count($aDirs), $sLocalConfigFile);
|
||||
}
|
||||
|
||||
function GetPathRootWeb() {
|
||||
protected function GetPathRootWeb() {
|
||||
return rtrim('http://'.$_SERVER['HTTP_HOST'],'/').str_replace('/install/index.php','',$_SERVER['PHP_SELF']);
|
||||
}
|
||||
|
||||
function GetPathRootServer() {
|
||||
protected function GetPathRootServer() {
|
||||
return rtrim(dirname(dirname(__FILE__)),'/');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ return array(
|
|||
'install_title'=>'LiveStreet Installation',
|
||||
'step'=>'Step',
|
||||
|
||||
'start_paragraph'=>'<p>Welcome to LiveStreet © 0.4.2 installation. .</p><p><b>Notice:</b> You have to rename file - /config/config.local.php.dist to config.local.php and apply read-write (rw) permision to it.</p><p><b>Notice:</b> Make sure that the following directories have rw permissions: /tmp, /logs, /uploads, /templates/compiled, /templates/cache</p>',
|
||||
'start_paragraph'=>'<p>Welcome to LiveStreet © 0.5 installation. </p><p><b>Notice:</b> You have to rename file - /config/config.local.php.dist to config.local.php and apply read-write (rw) permision to it.</p><p><b>Notice:</b> Make sure that the following directories have rw permissions: /tmp, /logs, /uploads, /templates/compiled, /templates/cache</p>',
|
||||
|
||||
'php_params'=>'General PHP Configuration',
|
||||
'php_params_version'=>'PHP ver. 5.1.2 or higher',
|
||||
|
@ -79,7 +79,7 @@ return array(
|
|||
'db_params_port_notice'=>'It might be a good choice to leave it as 3306 :)',
|
||||
'db_params_name'=>'DB name',
|
||||
'db_params_create'=>'Create DB',
|
||||
'db_params_convert'=>'Convert 0.3.1 DB to 0.4.2',
|
||||
'db_params_convert'=>'Convert 0.4.2 DB to 0.5',
|
||||
'db_params_user'=>'Username',
|
||||
'db_params_password'=>'Password',
|
||||
'db_params_prefix'=>"Table's prefix",
|
||||
|
@ -88,7 +88,7 @@ return array(
|
|||
'db_params_engine_notice'=>'InnoDB is recommended',
|
||||
|
||||
'error_table_select'=>'Query error whilst getting data from %%table%%',
|
||||
'error_database_converted_already'=>'DB structure suits v. 0.4 hence conversion aborted',
|
||||
'error_database_converted_already'=>'DB structure suits v. 0.5 hence conversion aborted',
|
||||
|
||||
'admin_params'=>'Administrator Details Configuration',
|
||||
'admin_params_login'=>'Login',
|
||||
|
|
|
@ -55,7 +55,7 @@ return array(
|
|||
'install_title'=>'Установка LiveStreet',
|
||||
'step'=>'Шаг',
|
||||
|
||||
'start_paragraph'=>'<p>Добро пожаловать в инсталлятор LiveStreet © 0.4.2. Ознакомьтесь с результатами и следуйте подсказкам.</p><p><b>Внимание.</b> Для успешной иснталяции вы должны переименовать файл /config/config.local.php.dist на config.local.php и дать этому файлу права на запись.</p><p><b>Внимание.</b> Директории /tmp, /logs, /uploads, /templates/compiled, /templates/cache должны иметь права на запись.</p>',
|
||||
'start_paragraph'=>'<p>Добро пожаловать в инсталлятор LiveStreet © 0.5. Ознакомьтесь с результатами и следуйте подсказкам.</p><p><b>Внимание.</b> Для успешной иснталяции вы должны переименовать файл /config/config.local.php.dist на config.local.php и дать этому файлу права на запись.</p><p><b>Внимание.</b> Директории /tmp, /logs, /uploads, /templates/compiled, /templates/cache должны иметь права на запись.</p>',
|
||||
|
||||
'php_params'=>'Основные настройки PHP',
|
||||
'php_params_version'=>'PHP версии не ниже 5.1.2',
|
||||
|
@ -79,7 +79,7 @@ return array(
|
|||
'db_params_port_notice'=>'Скорее всего правильным решение будет оставить 3306 :)',
|
||||
'db_params_name'=>'Название базы данных',
|
||||
'db_params_create'=>'Создать базу данных',
|
||||
'db_params_convert'=>'Конвертировать базу 0.3.1 в 0.4.2',
|
||||
'db_params_convert'=>'Конвертировать базу 0.4.2 в 0.5',
|
||||
'db_params_user'=>'Имя пользователя',
|
||||
'db_params_password'=>'Пароль',
|
||||
'db_params_prefix'=>'Префикс таблиц',
|
||||
|
@ -88,7 +88,7 @@ return array(
|
|||
'db_params_engine_notice'=>'Рекомендуется использовать InnoDB',
|
||||
|
||||
'error_table_select'=>'Ошибка запроса на выборку данных из таблицы %%table%%',
|
||||
'error_database_converted_already'=>'Конвертация отменена, так как структура базы данных соответствует версии 0.4',
|
||||
'error_database_converted_already'=>'Конвертация отменена, так как структура базы данных соответствует версии 0.5',
|
||||
|
||||
'admin_params'=>'Настройка данных администратора',
|
||||
'admin_params_login'=>'Логин',
|
||||
|
|
261
install/sql.sql
261
install/sql.sql
|
@ -1,5 +1,5 @@
|
|||
--
|
||||
-- Database LiveStreet version 0.4
|
||||
-- Database LiveStreet version 0.5
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
@ -27,14 +27,14 @@ CREATE TABLE IF NOT EXISTS `prefix_blog` (
|
|||
KEY `blog_type` (`blog_type`),
|
||||
KEY `blog_url` (`blog_url`),
|
||||
KEY `blog_title` (`blog_title`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_blog`
|
||||
--
|
||||
|
||||
INSERT INTO `prefix_blog` (`blog_id`, `user_owner_id`, `blog_title`, `blog_description`, `blog_type`, `blog_date_add`, `blog_date_edit`, `blog_rating`, `blog_count_vote`, `blog_count_user`, `blog_limit_rating_topic`, `blog_url`, `blog_avatar`) VALUES
|
||||
(1, 1, 'Blog by admin', 'This is your personal blog.', 'personal', '2009-05-10 00:00:00', NULL, 0.000, 0, 0, -1000.000, NULL, '0');
|
||||
(1, 1, 'Blog by admin', 'This is your personal blog.', 'personal', '2011-08-28 00:00:00', NULL, 0.000, 0, 0, -1000.000, NULL, '0');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -51,11 +51,6 @@ CREATE TABLE IF NOT EXISTS `prefix_blog_user` (
|
|||
KEY `user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_blog_user`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -67,12 +62,7 @@ CREATE TABLE IF NOT EXISTS `prefix_city` (
|
|||
`city_name` varchar(30) NOT NULL,
|
||||
PRIMARY KEY (`city_id`),
|
||||
KEY `city_name` (`city_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_city`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -87,11 +77,6 @@ CREATE TABLE IF NOT EXISTS `prefix_city_user` (
|
|||
KEY `city_id` (`city_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_city_user`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -120,12 +105,7 @@ CREATE TABLE IF NOT EXISTS `prefix_comment` (
|
|||
KEY `type_delete_publish` (`target_type`,`comment_delete`,`comment_publish`),
|
||||
KEY `user_type` (`user_id`,`target_type`),
|
||||
KEY `target_parent_id` (`target_parent_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_comment`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -143,12 +123,7 @@ CREATE TABLE IF NOT EXISTS `prefix_comment_online` (
|
|||
UNIQUE KEY `id_type` (`target_id`,`target_type`),
|
||||
KEY `comment_id` (`comment_id`),
|
||||
KEY `type_parent` (`target_type`,`target_parent_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_comment_online`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -161,12 +136,7 @@ CREATE TABLE IF NOT EXISTS `prefix_country` (
|
|||
`country_name` varchar(30) NOT NULL,
|
||||
PRIMARY KEY (`country_id`),
|
||||
KEY `country_name` (`country_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_country`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -181,11 +151,6 @@ CREATE TABLE IF NOT EXISTS `prefix_country_user` (
|
|||
KEY `country_id` (`country_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_country_user`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -202,11 +167,6 @@ CREATE TABLE IF NOT EXISTS `prefix_favourite` (
|
|||
KEY `id_type` (`target_id`,`target_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_favourite`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -222,11 +182,6 @@ CREATE TABLE IF NOT EXISTS `prefix_friend` (
|
|||
KEY `user_to` (`user_to`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_friend`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -246,12 +201,7 @@ CREATE TABLE IF NOT EXISTS `prefix_invite` (
|
|||
KEY `user_from_id` (`user_from_id`),
|
||||
KEY `user_to_id` (`user_to_id`),
|
||||
KEY `invite_date_add` (`invite_date_add`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_invite`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -269,12 +219,7 @@ CREATE TABLE IF NOT EXISTS `prefix_notify_task` (
|
|||
`notify_task_status` tinyint(2) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`notify_task_id`),
|
||||
KEY `date_created` (`date_created`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_notify_task`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -293,11 +238,6 @@ CREATE TABLE IF NOT EXISTS `prefix_reminder` (
|
|||
UNIQUE KEY `user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_reminder`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -316,10 +256,46 @@ CREATE TABLE IF NOT EXISTS `prefix_session` (
|
|||
KEY `session_date_last` (`session_date_last`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_session`
|
||||
-- Table structure for table `prefix_stream_event`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_stream_event` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`event_type` varchar(100) NOT NULL,
|
||||
`target_id` int(11) NOT NULL,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`date_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `event_type` (`event_type`,`user_id`),
|
||||
KEY `user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `prefix_stream_subscribe`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_stream_subscribe` (
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`target_user_id` int(11) NOT NULL,
|
||||
KEY `user_id` (`user_id`,`target_user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `prefix_stream_user_type`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_stream_user_type` (
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`event_type` varchar(100) DEFAULT NULL,
|
||||
KEY `user_id` (`user_id`,`event_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -341,12 +317,7 @@ CREATE TABLE IF NOT EXISTS `prefix_talk` (
|
|||
KEY `talk_title` (`talk_title`),
|
||||
KEY `talk_date` (`talk_date`),
|
||||
KEY `talk_date_last` (`talk_date_last`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_talk`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -361,11 +332,6 @@ CREATE TABLE IF NOT EXISTS `prefix_talk_blacklist` (
|
|||
KEY `prefix_talk_blacklist_fk_target` (`user_target_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_talk_blacklist`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -386,11 +352,6 @@ CREATE TABLE IF NOT EXISTS `prefix_talk_user` (
|
|||
KEY `talk_user_active` (`talk_user_active`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_talk_user`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -401,7 +362,7 @@ CREATE TABLE IF NOT EXISTS `prefix_topic` (
|
|||
`topic_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`blog_id` int(11) unsigned NOT NULL,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`topic_type` enum('topic','link','question') NOT NULL DEFAULT 'topic',
|
||||
`topic_type` enum('topic','link','question','photoset') NOT NULL DEFAULT 'topic',
|
||||
`topic_title` varchar(200) NOT NULL,
|
||||
`topic_tags` varchar(250) NOT NULL COMMENT 'tags separated by a comma',
|
||||
`topic_date_add` datetime NOT NULL,
|
||||
|
@ -424,12 +385,7 @@ CREATE TABLE IF NOT EXISTS `prefix_topic` (
|
|||
KEY `topic_rating` (`topic_rating`),
|
||||
KEY `topic_publish` (`topic_publish`),
|
||||
KEY `topic_text_hash` (`topic_text_hash`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_topic`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -446,10 +402,22 @@ CREATE TABLE IF NOT EXISTS `prefix_topic_content` (
|
|||
PRIMARY KEY (`topic_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_topic_content`
|
||||
-- Table structure for table `prefix_topic_photo`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_topic_photo` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`topic_id` int(11) unsigned NOT NULL,
|
||||
`path` varchar(255) NOT NULL,
|
||||
`description` text,
|
||||
`target_tmp` varchar(40) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `topic_id` (`topic_id`),
|
||||
KEY `target_tmp` (`target_tmp`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -465,11 +433,6 @@ CREATE TABLE IF NOT EXISTS `prefix_topic_question_vote` (
|
|||
KEY `user_voter_id` (`user_voter_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_topic_question_vote`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -486,11 +449,6 @@ CREATE TABLE IF NOT EXISTS `prefix_topic_read` (
|
|||
KEY `user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_topic_read`
|
||||
--
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
|
@ -508,12 +466,7 @@ CREATE TABLE IF NOT EXISTS `prefix_topic_tag` (
|
|||
KEY `user_id` (`user_id`),
|
||||
KEY `blog_id` (`blog_id`),
|
||||
KEY `topic_tag_text` (`topic_tag_text`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_topic_tag`
|
||||
--
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -560,14 +513,27 @@ CREATE TABLE IF NOT EXISTS `prefix_user` (
|
|||
KEY `user_activate` (`user_activate`),
|
||||
KEY `user_rating` (`user_rating`),
|
||||
KEY `user_profile_sex` (`user_profile_sex`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_user`
|
||||
--
|
||||
|
||||
INSERT INTO `prefix_user` (`user_id`, `user_login`, `user_password`, `user_mail`, `user_skill`, `user_date_register`, `user_date_activate`, `user_date_comment_last`, `user_ip_register`, `user_rating`, `user_count_vote`, `user_activate`, `user_activate_key`, `user_profile_name`, `user_profile_sex`, `user_profile_country`, `user_profile_region`, `user_profile_city`, `user_profile_birthday`, `user_profile_site`, `user_profile_site_name`, `user_profile_icq`, `user_profile_about`, `user_profile_date`, `user_profile_avatar`, `user_profile_foto`, `user_settings_notice_new_topic`, `user_settings_notice_new_comment`, `user_settings_notice_new_talk`, `user_settings_notice_reply_comment`, `user_settings_notice_new_friend`) VALUES
|
||||
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin@admin.adm', 0.000, '2009-05-10 00:00:00', NULL, NULL, '127.0.0.1', 0.000, 0, 1, NULL, NULL, 'other', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', NULL, 1, 1, 1, 1, 1);
|
||||
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin@admin.adm', 0.000, '2011-08-28 00:00:00', NULL, NULL, '127.0.0.1', 0.000, 0, 1, NULL, NULL, 'other', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', NULL, 1, 1, 1, 1, 1);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `prefix_userfeed_subscribe`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_userfeed_subscribe` (
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`subscribe_type` tinyint(4) NOT NULL,
|
||||
`target_id` int(11) NOT NULL,
|
||||
KEY `user_id` (`user_id`,`subscribe_type`,`target_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
@ -589,6 +555,35 @@ INSERT INTO `prefix_user_administrator` (`user_id`) VALUES
|
|||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `prefix_user_field`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_user_field` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`pattern` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `prefix_user_field_value`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_user_field_value` (
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`field_id` int(11) DEFAULT NULL,
|
||||
`value` varchar(255) DEFAULT NULL,
|
||||
KEY `user_id` (`user_id`,`field_id`),
|
||||
KEY `field_id` (`field_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `prefix_vote`
|
||||
--
|
||||
|
@ -604,11 +599,6 @@ CREATE TABLE IF NOT EXISTS `prefix_vote` (
|
|||
KEY `user_voter_id` (`user_voter_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `prefix_vote`
|
||||
--
|
||||
|
||||
|
||||
--
|
||||
-- Constraints for dumped tables
|
||||
--
|
||||
|
@ -685,6 +675,24 @@ ALTER TABLE `prefix_reminder`
|
|||
ALTER TABLE `prefix_session`
|
||||
ADD CONSTRAINT `prefix_session_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_stream_event`
|
||||
--
|
||||
ALTER TABLE `prefix_stream_event`
|
||||
ADD CONSTRAINT `prefix_stream_event_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_stream_subscribe`
|
||||
--
|
||||
ALTER TABLE `prefix_stream_subscribe`
|
||||
ADD CONSTRAINT `prefix_stream_subscribe_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_stream_user_type`
|
||||
--
|
||||
ALTER TABLE `prefix_stream_user_type`
|
||||
ADD CONSTRAINT `prefix_stream_user_type_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_talk`
|
||||
--
|
||||
|
@ -718,6 +726,12 @@ ALTER TABLE `prefix_topic`
|
|||
ALTER TABLE `prefix_topic_content`
|
||||
ADD CONSTRAINT `prefix_topic_content_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_topic_photo`
|
||||
--
|
||||
ALTER TABLE `prefix_topic_photo`
|
||||
ADD CONSTRAINT `prefix_topic_photo_ibfk_1` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_topic_question_vote`
|
||||
--
|
||||
|
@ -740,12 +754,25 @@ ALTER TABLE `prefix_topic_tag`
|
|||
ADD CONSTRAINT `prefix_topic_tag_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_topic_tag_fk2` FOREIGN KEY (`blog_id`) REFERENCES `prefix_blog` (`blog_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_userfeed_subscribe`
|
||||
--
|
||||
ALTER TABLE `prefix_userfeed_subscribe`
|
||||
ADD CONSTRAINT `prefix_userfeed_subscribe_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_user_administrator`
|
||||
--
|
||||
ALTER TABLE `prefix_user_administrator`
|
||||
ADD CONSTRAINT `user_administrator_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_user_field_value`
|
||||
--
|
||||
ALTER TABLE `prefix_user_field_value`
|
||||
ADD CONSTRAINT `prefix_user_field_value_ibfk_2` FOREIGN KEY (`field_id`) REFERENCES `prefix_user_field` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_user_field_value_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `prefix_vote`
|
||||
--
|
||||
|
|
41
patch.sql
41
patch.sql
|
@ -58,4 +58,43 @@ ALTER TABLE `prefix_stream_event` CHANGE event_type event_type varchar(100) not
|
|||
|
||||
ALTER TABLE `prefix_stream_event` CHANGE `initiator` `user_id` INT( 11 ) NOT NULL;
|
||||
|
||||
ALTER TABLE `prefix_topic_photo` CHANGE `topic_id` `topic_id` INT( 11 ) DEFAULT NULL;
|
||||
ALTER TABLE `prefix_topic_photo` CHANGE `topic_id` `topic_id` INT( 11 ) DEFAULT NULL;
|
||||
|
||||
ALTER TABLE `prefix_userfeed_subscribe` ADD INDEX ( `user_id` , `subscribe_type` , `target_id` ) ;
|
||||
ALTER TABLE `prefix_stream_subscribe` ADD INDEX ( `user_id` , `target_user_id` );
|
||||
ALTER TABLE `prefix_stream_event` ADD INDEX ( `event_type` , `user_id` ) ;
|
||||
ALTER TABLE `prefix_user_field` ADD INDEX ( `name` ) ;
|
||||
ALTER TABLE `prefix_user_field_value` ADD INDEX ( `user_id` , `field_id` ) ;
|
||||
ALTER TABLE `prefix_user_field_value` ADD INDEX ( `field_id` ) ;
|
||||
ALTER TABLE `prefix_topic_photo` ADD INDEX ( `topic_id` ) ;
|
||||
ALTER TABLE `prefix_topic_photo` ADD INDEX ( `target_tmp` ) ;
|
||||
ALTER TABLE `prefix_stream_user_type` ADD INDEX ( `user_id` , `event_type` ) ;
|
||||
|
||||
ALTER TABLE `prefix_userfeed_subscribe` CHANGE `user_id` `user_id` INT( 11 ) UNSIGNED NOT NULL ;
|
||||
ALTER TABLE `prefix_userfeed_subscribe` ADD FOREIGN KEY ( `user_id` ) REFERENCES `prefix_user` (
|
||||
`user_id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;
|
||||
ALTER TABLE `prefix_stream_subscribe` CHANGE `user_id` `user_id` INT( 11 ) UNSIGNED NOT NULL ;
|
||||
ALTER TABLE `prefix_stream_subscribe` ADD FOREIGN KEY ( `user_id` ) REFERENCES `prefix_user` (
|
||||
`user_id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;
|
||||
ALTER TABLE `prefix_user_field_value` CHANGE `user_id` `user_id` INT( 11 ) UNSIGNED NOT NULL ;
|
||||
ALTER TABLE `prefix_user_field_value` ADD FOREIGN KEY ( `user_id` ) REFERENCES `prefix_user` (
|
||||
`user_id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;
|
||||
ALTER TABLE `prefix_topic_photo` CHANGE `topic_id` `topic_id` INT( 11 ) UNSIGNED NOT NULL ;
|
||||
ALTER TABLE `prefix_topic_photo` ADD FOREIGN KEY ( `topic_id` ) REFERENCES `prefix_topic` (
|
||||
`topic_id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;
|
||||
ALTER TABLE `prefix_stream_user_type` CHANGE `user_id` `user_id` INT( 11 ) UNSIGNED NOT NULL ;
|
||||
ALTER TABLE `prefix_stream_user_type` ADD FOREIGN KEY ( `user_id` ) REFERENCES `prefix_user` (
|
||||
`user_id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;
|
||||
ALTER TABLE `prefix_user_field_value` ADD FOREIGN KEY ( `field_id` ) REFERENCES `prefix_user_field` (
|
||||
`id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;
|
||||
ALTER TABLE `prefix_stream_event` CHANGE `user_id` `user_id` INT( 11 ) UNSIGNED NOT NULL ;
|
||||
ALTER TABLE `prefix_stream_event` ADD INDEX ( `user_id` ) ;
|
||||
ALTER TABLE `prefix_stream_event` ADD FOREIGN KEY ( `user_id` ) REFERENCES `prefix_user` (
|
||||
`user_id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;
|
||||
|
|
Loading…
Reference in a new issue