mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-05-19 17:28:23 +03:00
апдейт БД с версии 0.2 на 0.3
This commit is contained in:
parent
ef5922787f
commit
f8e26d8a68
|
@ -570,7 +570,7 @@ return array(
|
|||
'talk_inbox' => 'Почтовый ящик_$$',
|
||||
'talk_inbox_target' => 'Адресаты_$$',
|
||||
'talk_inbox_title' => 'Тема_$$',
|
||||
'talk_inbox_date' => 'Тема_$$',
|
||||
'talk_inbox_date' => 'Дата_$$',
|
||||
'talk_inbox_delete' => 'Удалить переписку_$$',
|
||||
'talk_inbox_delete_confirm' => 'Действительно удалить переписку?_$$',
|
||||
'talk_comments' => 'Переписка_$$',
|
||||
|
|
|
@ -1,194 +0,0 @@
|
|||
<?
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
set_include_path(get_include_path().PATH_SEPARATOR.dirname(dirname(__FILE__)));
|
||||
chdir(dirname(dirname(__FILE__)));
|
||||
|
||||
require_once("./config/config.table.php");
|
||||
|
||||
$aConfig=include("./config/config.db.php");
|
||||
$link=mysql_connect($aConfig['host'],$aConfig['user'],$aConfig['pass']);
|
||||
mysql_select_db($aConfig['dbname'],$link);
|
||||
mysql_query("set character_set_client='utf8'",$link);
|
||||
mysql_query("set character_set_results='utf8'",$link);
|
||||
mysql_query("set collation_connection='utf8_bin'",$link);
|
||||
|
||||
/**
|
||||
* Выполняем SQL для конвертации структуры БД
|
||||
*/
|
||||
$fp = fopen("./update/update_0.1.2_to_0.2.sql", "r");
|
||||
if (!$fp) {
|
||||
die("Не найден SQL файл - update_0.1.2_to_0.2.sql");
|
||||
}
|
||||
|
||||
$sSql = '';
|
||||
while (!feof($fp)) {
|
||||
$sSql.=fread($fp, 1024*4);
|
||||
}
|
||||
fclose($fp);
|
||||
if ($sSql!='') {
|
||||
$aSqlList=explode(';',$sSql);
|
||||
foreach ($aSqlList as $s) {
|
||||
if (trim($s)!='') {
|
||||
if (!mysql_query($s,$link)) {
|
||||
var_dump(mysql_error($link));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Конвертирует топики из старой структуры в новую
|
||||
*/
|
||||
$sql = "SELECT
|
||||
*
|
||||
FROM
|
||||
".DB_TABLE_TOPIC." as t ;
|
||||
";
|
||||
$res=mysql_query($sql,$link);
|
||||
while ($row=mysql_fetch_assoc($res)) {
|
||||
if (isset($row['topic_text'])) {
|
||||
$sql2 = "REPLACE INTO ".DB_TABLE_TOPIC_CONTENT."
|
||||
(topic_id,topic_text,topic_text_short,topic_text_source)
|
||||
values(".$row['topic_id'].",'".mysql_escape_string($row['topic_text'])."','".mysql_escape_string($row['topic_text_short'])."','".mysql_escape_string($row['topic_text_source'])."')
|
||||
|
||||
";
|
||||
mysql_query($sql2,$link);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Завершаем конвертацию БД - удаляем лишние колонки из таблицы топиков.
|
||||
* Внимание! Если не отработала конвертация топиков в новую структуру, то будет потерянно всё содержание всех топиков!!
|
||||
*/
|
||||
$sSql="
|
||||
ALTER TABLE `".DB_TABLE_TOPIC."` DROP `topic_text` ;
|
||||
ALTER TABLE `".DB_TABLE_TOPIC."` DROP `topic_text_short` ;
|
||||
ALTER TABLE `".DB_TABLE_TOPIC."` DROP `topic_text_source` ;
|
||||
ALTER TABLE `".DB_TABLE_TOPIC."` CHANGE `topic_tags` `topic_tags` VARCHAR( 250 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'через запятую перечислены теги' ;
|
||||
";
|
||||
$aSqlList=explode(';',$sSql);
|
||||
foreach ($aSqlList as $s) {
|
||||
if (trim($s)!='') {
|
||||
if (!mysql_query($s,$link)) {
|
||||
var_dump(mysql_error($link));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Конвертируем комментариии в новую структуру
|
||||
* Если комментариев много, то может занять много времени
|
||||
*/
|
||||
$sql = "SELECT res.* FROM (
|
||||
|
||||
SELECT
|
||||
c.*,
|
||||
t.topic_title as topic_title,
|
||||
t.topic_count_comment as topic_count_comment,
|
||||
u.user_profile_avatar as user_profile_avatar,
|
||||
u.user_profile_avatar_type as user_profile_avatar_type,
|
||||
u.user_login as user_login,
|
||||
b.blog_title as blog_title,
|
||||
b.blog_type as blog_type,
|
||||
b.blog_url as blog_url,
|
||||
u_owner.user_login as blog_owner_login
|
||||
FROM
|
||||
".DB_TABLE_TOPIC_COMMENT." as c,
|
||||
".DB_TABLE_TOPIC." as t,
|
||||
".DB_TABLE_USER." as u,
|
||||
".DB_TABLE_BLOG." as b,
|
||||
".DB_TABLE_USER." as u_owner
|
||||
WHERE
|
||||
c.comment_id=(SELECT comment_id FROM ".DB_TABLE_TOPIC_COMMENT." WHERE topic_id=t.topic_id AND t.topic_publish=1 ORDER BY comment_date DESC LIMIT 0,1)
|
||||
AND
|
||||
c.comment_delete = 0
|
||||
AND
|
||||
c.topic_id=t.topic_id
|
||||
AND
|
||||
t.topic_publish = 1
|
||||
AND
|
||||
c.user_id=u.user_id
|
||||
AND
|
||||
t.blog_id=b.blog_id
|
||||
AND
|
||||
b.user_owner_id=u_owner.user_id
|
||||
ORDER by c.comment_date desc limit 0, 50
|
||||
|
||||
) as res
|
||||
ORDER BY comment_date asc
|
||||
";
|
||||
$res=mysql_query($sql,$link);
|
||||
while ($row=mysql_fetch_assoc($res)) {
|
||||
$sql2 = "REPLACE INTO ".DB_TABLE_TOPIC_COMMENT_ONLINE."
|
||||
SET topic_id = ".$row['topic_id']." ,comment_id = ".$row['comment_id']."
|
||||
";
|
||||
mysql_query($sql2,$link);
|
||||
}
|
||||
|
||||
|
||||
|
||||
require_once("./config/config.ajax.php");
|
||||
/**
|
||||
* конвертируем страны и города в новую структуру
|
||||
*/
|
||||
$aData=$oEngine->User_GetUsersRating('good',0,1,10000);
|
||||
$aUsers=$aData['collection'];
|
||||
foreach ($aUsers as $oUser) {
|
||||
/**
|
||||
* Добавляем страну
|
||||
*/
|
||||
if ($oUser->getProfileCountry()) {
|
||||
if (!($oCountry=$oEngine->User_GetCountryByName($oUser->getProfileCountry()))) {
|
||||
$oCountry=new UserEntity_Country();
|
||||
$oCountry->setName($oUser->getProfileCountry());
|
||||
$oEngine->User_AddCountry($oCountry);
|
||||
}
|
||||
$oEngine->User_SetCountryUser($oCountry->getId(),$oUser->getId());
|
||||
}
|
||||
/**
|
||||
* Добавляем город
|
||||
*/
|
||||
if ($oUser->getProfileCity()) {
|
||||
if (!($oCity=$oEngine->User_GetCityByName($oUser->getProfileCity()))) {
|
||||
$oCity=new UserEntity_City();
|
||||
$oCity->setName($oUser->getProfileCity());
|
||||
$oEngine->User_AddCity($oCity);
|
||||
}
|
||||
$oEngine->User_SetCityUser($oCity->getId(),$oUser->getId());
|
||||
}
|
||||
}
|
||||
$aData=$oEngine->User_GetUsersRating('bad',0,1,10000);
|
||||
$aUsers=$aData['collection'];
|
||||
foreach ($aUsers as $oUser) {
|
||||
/**
|
||||
* Добавляем страну
|
||||
*/
|
||||
if ($oUser->getProfileCountry()) {
|
||||
if (!($oCountry=$oEngine->User_GetCountryByName($oUser->getProfileCountry()))) {
|
||||
$oCountry=new UserEntity_Country();
|
||||
$oCountry->setName($oUser->getProfileCountry());
|
||||
$oEngine->User_AddCountry($oCountry);
|
||||
}
|
||||
$oEngine->User_SetCountryUser($oCountry->getId(),$oUser->getId());
|
||||
}
|
||||
/**
|
||||
* Добавляем город
|
||||
*/
|
||||
if ($oUser->getProfileCity()) {
|
||||
if (!($oCity=$oEngine->User_GetCityByName($oUser->getProfileCity()))) {
|
||||
$oCity=new UserEntity_City();
|
||||
$oCity->setName($oUser->getProfileCity());
|
||||
$oEngine->User_AddCity($oCity);
|
||||
}
|
||||
$oEngine->User_SetCityUser($oCity->getId(),$oUser->getId());
|
||||
}
|
||||
}
|
||||
?>
|
||||
Если никакие ошибки не повылазили, значит апдейт на новую версию прошел успешно. Поздравляем!
|
|
@ -1,324 +0,0 @@
|
|||
CREATE TABLE IF NOT EXISTS `prefix_topic_content` (
|
||||
`topic_id` int(11) unsigned NOT NULL,
|
||||
`topic_text` text collate utf8_bin NOT NULL,
|
||||
`topic_text_short` text collate utf8_bin NOT NULL,
|
||||
`topic_text_source` text collate utf8_bin NOT NULL,
|
||||
`topic_extra` text collate utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`topic_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа сохраненных таблиц
|
||||
--
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_topic_content`
|
||||
--
|
||||
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;
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_topic_question_vote`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_topic_question_vote` (
|
||||
`topic_id` int(11) unsigned NOT NULL,
|
||||
`user_voter_id` int(11) unsigned NOT NULL,
|
||||
`answer` tinyint(4) NOT NULL,
|
||||
UNIQUE KEY `topic_id_user_id` (`topic_id`,`user_voter_id`),
|
||||
KEY `topic_id` (`topic_id`),
|
||||
KEY `user_voter_id` (`user_voter_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа сохраненных таблиц
|
||||
--
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_topic_question_vote`
|
||||
--
|
||||
ALTER TABLE `prefix_topic_question_vote`
|
||||
ADD CONSTRAINT `prefix_topic_question_vote_fk1` FOREIGN KEY (`user_voter_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_topic_question_vote_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
|
||||
|
||||
-- Меняем индекс в таблице комментов
|
||||
ALTER TABLE `prefix_topic_comment` DROP INDEX `comment_date_rating` ;
|
||||
ALTER TABLE `prefix_topic_comment` ADD INDEX `rating_date_id` ( `comment_rating` , `comment_date` , `comment_id` ) ;
|
||||
ALTER TABLE `prefix_topic_comment` ADD INDEX ( `comment_date` ) ;
|
||||
|
||||
|
||||
|
||||
ALTER TABLE `prefix_topic_comment` ADD `comment_delete` TINYINT NOT NULL DEFAULT '0';
|
||||
ALTER TABLE `prefix_topic_comment` ADD INDEX ( `comment_delete` ) ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_topic_comment_online`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_topic_comment_online` (
|
||||
`comment_online_id` int(11) unsigned NOT NULL auto_increment,
|
||||
`topic_id` int(11) unsigned NOT NULL,
|
||||
`comment_id` int(11) unsigned NOT NULL,
|
||||
PRIMARY KEY (`comment_online_id`),
|
||||
KEY `topic_id` (`topic_id`),
|
||||
KEY `comment_id` (`comment_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа сохраненных таблиц
|
||||
--
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_topic_comment_online`
|
||||
--
|
||||
ALTER TABLE `prefix_topic_comment_online`
|
||||
ADD CONSTRAINT `prefix_topic_comment_online_fk1` FOREIGN KEY (`comment_id`) REFERENCES `prefix_topic_comment` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_topic_comment_online_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
|
||||
-- перевод некоторых полей в регистронезависимую кодировку
|
||||
ALTER TABLE `prefix_topic_comment` CHANGE `comment_text` `comment_text` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_topic` CHANGE `topic_tags` `topic_tags` VARCHAR( 250 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'через запятую перечислены теги' ;
|
||||
ALTER TABLE `prefix_topic_content` CHANGE `topic_text` `topic_text` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_topic_content` CHANGE `topic_text_short` `topic_text_short` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_topic_content` CHANGE `topic_text_source` `topic_text_source` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_topic_content` CHANGE `topic_extra` `topic_extra` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_topic_tag` CHANGE `topic_tag_text` `topic_tag_text` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_user` CHANGE `user_mail` `user_mail` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_user` CHANGE `user_login` `user_login` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_blog` CHANGE `blog_title` `blog_title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_blog` CHANGE `blog_url` `blog_url` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;
|
||||
|
||||
|
||||
-- новое поле для принудительного вывода топика на главную страницу
|
||||
ALTER TABLE `prefix_topic` ADD `topic_publish_index` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `topic_publish` ;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_invite`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_invite` (
|
||||
`invite_id` int(11) unsigned NOT NULL auto_increment,
|
||||
`invite_code` varchar(32) collate utf8_bin NOT NULL,
|
||||
`user_from_id` int(11) unsigned NOT NULL,
|
||||
`user_to_id` int(11) unsigned default NULL,
|
||||
`invite_date_add` datetime NOT NULL,
|
||||
`invite_date_used` datetime NOT NULL,
|
||||
`invite_used` tinyint(1) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`invite_id`),
|
||||
UNIQUE KEY `invite_code` (`invite_code`),
|
||||
KEY `user_from_id` (`user_from_id`),
|
||||
KEY `user_to_id` (`user_to_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_invite`
|
||||
--
|
||||
ALTER TABLE `prefix_invite`
|
||||
ADD CONSTRAINT `prefix_invite_fk` FOREIGN KEY (`user_from_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_invite_fk1` FOREIGN KEY (`user_to_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `prefix_invite` ADD INDEX ( `invite_date_add` ) ;
|
||||
|
||||
|
||||
-- Дополнительные поля настройки у юзера
|
||||
ALTER TABLE `prefix_user` ADD `user_settings_notice_new_topic` TINYINT( 1 ) NOT NULL DEFAULT '1';
|
||||
ALTER TABLE `prefix_user` ADD `user_settings_notice_new_comment` TINYINT( 1 ) NOT NULL DEFAULT '1';
|
||||
ALTER TABLE `prefix_user` ADD `user_settings_notice_new_talk` TINYINT( 1 ) NOT NULL DEFAULT '1';
|
||||
ALTER TABLE `prefix_user` ADD `user_settings_notice_reply_comment` TINYINT( 1 ) NOT NULL DEFAULT '1';
|
||||
|
||||
|
||||
|
||||
ALTER TABLE `prefix_blog` ADD INDEX ( `blog_title` ) ;
|
||||
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_page`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_page` (
|
||||
`page_id` int(11) unsigned NOT NULL auto_increment,
|
||||
`page_pid` int(11) unsigned default NULL,
|
||||
`page_url` varchar(50) NOT NULL,
|
||||
`page_url_full` varchar(254) NOT NULL,
|
||||
`page_title` varchar(200) NOT NULL,
|
||||
`page_text` text NOT NULL,
|
||||
`page_date_add` datetime NOT NULL,
|
||||
`page_date_edit` datetime default NULL,
|
||||
`page_seo_keywords` varchar(250) default NULL,
|
||||
`page_seo_description` varchar(250) default NULL,
|
||||
`page_active` tinyint(1) unsigned NOT NULL default '1',
|
||||
PRIMARY KEY (`page_id`),
|
||||
KEY `page_pid` (`page_pid`),
|
||||
KEY `page_url_full` (`page_url_full`,`page_active`),
|
||||
KEY `page_title` (`page_title`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа сохраненных таблиц
|
||||
--
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_page`
|
||||
--
|
||||
ALTER TABLE `prefix_page`
|
||||
ADD CONSTRAINT `prefix_page_fk` FOREIGN KEY (`page_pid`) REFERENCES `prefix_page` (`page_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
|
||||
-- очищаем перед созданием уникального индекса
|
||||
TRUNCATE TABLE `prefix_topic_read` ;
|
||||
-- делаем индекс уникальным, а не просто индексом
|
||||
ALTER TABLE `prefix_topic_read` DROP INDEX `topic_id_user_id` ,
|
||||
ADD UNIQUE `topic_id_user_id` ( `topic_id` , `user_id` ) ;
|
||||
|
||||
-- новое поле для текста КАТа
|
||||
ALTER TABLE `prefix_topic` ADD `topic_cut_text` VARCHAR( 100 ) NULL ;
|
||||
|
||||
|
||||
-- новое поле для запрета комментов в топике
|
||||
ALTER TABLE `prefix_topic` ADD `topic_forbid_comment` TINYINT( 1 ) NOT NULL DEFAULT '0';
|
||||
|
||||
|
||||
-- новое поле для хранения хеша текста коммента
|
||||
ALTER TABLE `prefix_topic_comment` ADD `comment_text_hash` VARCHAR( 32 ) NOT NULL AFTER `comment_text` ;
|
||||
|
||||
|
||||
ALTER TABLE `prefix_user` CHANGE `user_profile_avatar_type` `user_profile_avatar_type` VARCHAR( 5 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;
|
||||
|
||||
-- поля для аватара блога
|
||||
ALTER TABLE `prefix_blog` ADD `blog_avatar` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0';
|
||||
ALTER TABLE `prefix_blog` ADD `blog_avatar_type` VARCHAR( 5 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL ;
|
||||
|
||||
|
||||
-- поле для хранения даты последнего коммента, оставленого юзером
|
||||
ALTER TABLE `prefix_user` ADD `user_date_comment_last` DATETIME NULL AFTER `user_date_activate` ;
|
||||
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_topic_comment_last`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_topic_comment_last` (
|
||||
`topic_id` int(11) unsigned NOT NULL,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`comment_count_last` int(11) unsigned NOT NULL,
|
||||
`date_last` datetime NOT NULL,
|
||||
UNIQUE KEY `user_id_topic_id` (`user_id`,`topic_id`),
|
||||
KEY `topic_id` (`topic_id`),
|
||||
KEY `user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа сохраненных таблиц
|
||||
--
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_topic_comment_last`
|
||||
--
|
||||
ALTER TABLE `prefix_topic_comment_last`
|
||||
ADD CONSTRAINT `prefix_topic_comment_new_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_topic_comment_new_fk1` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
|
||||
-- новое поля для настройки уведомления о новом друге
|
||||
ALTER TABLE `prefix_user` ADD `user_settings_notice_new_friend` TINYINT( 1 ) NOT NULL DEFAULT '1';
|
||||
|
||||
|
||||
-- изменяем имя таблицы на правильное с точки зрения грамотеев английского языка..
|
||||
RENAME TABLE `prefix_frend` TO `prefix_friend` ;
|
||||
|
||||
|
||||
-- добавляем уникальный индекс
|
||||
ALTER TABLE `prefix_topic_comment_online` DROP INDEX `topic_id` ,
|
||||
ADD UNIQUE `topic_id` ( `topic_id` ) ;
|
||||
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_city`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_city` (
|
||||
`city_id` int(11) unsigned NOT NULL auto_increment,
|
||||
`city_name` varchar(30) NOT NULL,
|
||||
PRIMARY KEY (`city_id`),
|
||||
KEY `city_name` (`city_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_city_user`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_city_user` (
|
||||
`city_id` int(11) unsigned NOT NULL,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
UNIQUE KEY `user_id` (`user_id`),
|
||||
KEY `city_id` (`city_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_country`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_country` (
|
||||
`country_id` int(11) unsigned NOT NULL auto_increment,
|
||||
`country_name` varchar(30) NOT NULL,
|
||||
PRIMARY KEY (`country_id`),
|
||||
KEY `country_name` (`country_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_country_user`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_country_user` (
|
||||
`country_id` int(11) unsigned NOT NULL,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
UNIQUE KEY `user_id` (`user_id`),
|
||||
KEY `country_id` (`country_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа сохраненных таблиц
|
||||
--
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_city_user`
|
||||
--
|
||||
ALTER TABLE `prefix_city_user`
|
||||
ADD CONSTRAINT `prefix_city_user_fk` FOREIGN KEY (`city_id`) REFERENCES `prefix_city` (`city_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_city_user_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_country_user`
|
||||
--
|
||||
ALTER TABLE `prefix_country_user`
|
||||
ADD CONSTRAINT `prefix_country_user_fk` FOREIGN KEY (`country_id`) REFERENCES `prefix_country` (`country_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `prefix_country_user_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- Дополнительное поле для избранного
|
||||
ALTER TABLE `prefix_favourite_topic` ADD `topic_publish` TINYINT( 1 ) NOT NULL DEFAULT '1';
|
||||
|
||||
ALTER TABLE `prefix_favourite_topic` ADD INDEX ( `topic_publish` ) ;
|
||||
|
||||
-- удаляем табличку, она оказалась лишней :)
|
||||
DROP TABLE `prefix_topic_comment_last` ;
|
||||
-- новое поле для определения количества новых комментов
|
||||
ALTER TABLE `prefix_topic_read` ADD `comment_count_last` INT UNSIGNED NOT NULL DEFAULT '0';
|
||||
|
43
update/update_0.2_to_0.3.php
Normal file
43
update/update_0.2_to_0.3.php
Normal file
|
@ -0,0 +1,43 @@
|
|||
<?
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
set_include_path(get_include_path().PATH_SEPARATOR.dirname(dirname(__FILE__)));
|
||||
chdir(dirname(dirname(__FILE__)));
|
||||
|
||||
require_once("./config/config.table.php");
|
||||
|
||||
$aConfig=include("./config/config.db.php");
|
||||
$link=mysql_connect($aConfig['host'],$aConfig['user'],$aConfig['pass']);
|
||||
mysql_select_db($aConfig['dbname'],$link);
|
||||
mysql_query("set character_set_client='utf8'",$link);
|
||||
mysql_query("set character_set_results='utf8'",$link);
|
||||
mysql_query("set collation_connection='utf8_bin'",$link);
|
||||
|
||||
/**
|
||||
* Выполняем SQL для конвертации структуры БД
|
||||
*/
|
||||
$fp = fopen("./update/update_0.2_to_0.3.sql", "r");
|
||||
if (!$fp) {
|
||||
die("Не найден SQL файл - update_0.2_to_0.3.sql");
|
||||
}
|
||||
|
||||
$sSql = '';
|
||||
while (!feof($fp)) {
|
||||
$sSql.=fread($fp, 1024*4);
|
||||
}
|
||||
fclose($fp);
|
||||
if ($sSql!='') {
|
||||
$aSqlList=explode(';',$sSql);
|
||||
foreach ($aSqlList as $s) {
|
||||
if (trim($s)!='') {
|
||||
if (!mysql_query($s,$link)) {
|
||||
var_dump(mysql_error($link));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
Если никакие ошибки не повылазили, значит апдейт на новую версию прошел успешно. Поздравляем!
|
27
update/update_0.2_to_0.3.sql
Normal file
27
update/update_0.2_to_0.3.sql
Normal file
|
@ -0,0 +1,27 @@
|
|||
CREATE TABLE IF NOT EXISTS `prefix_reminder` (
|
||||
`reminder_code` varchar(32) NOT NULL,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`reminder_date_add` datetime NOT NULL,
|
||||
`reminder_date_used` datetime default '0000-00-00 00:00:00',
|
||||
`reminder_date_expire` datetime NOT NULL,
|
||||
`reminde_is_used` tinyint(1) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`reminder_code`),
|
||||
UNIQUE KEY `user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE `prefix_reminder`
|
||||
ADD CONSTRAINT `prefix_reminder_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `prefix_user` ADD `user_profile_foto` VARCHAR( 250 ) NULL AFTER `user_profile_avatar_type` ;
|
||||
|
||||
ALTER TABLE `prefix_topic_read` ADD `comment_id_last` INT( 11 ) NOT NULL DEFAULT '0' AFTER `comment_count_last` ;
|
||||
|
||||
ALTER TABLE `prefix_talk` ADD `talk_date_last` DATETIME NOT NULL AFTER `talk_date` ;
|
||||
|
||||
ALTER TABLE `prefix_topic` ADD `topic_publish_draft` TINYINT( 1 ) NOT NULL DEFAULT '1' AFTER `topic_publish` ;
|
||||
|
||||
ALTER TABLE `prefix_topic` ADD `topic_text_hash` VARCHAR( 32 ) NOT NULL ;
|
||||
|
||||
ALTER TABLE `prefix_invite` CHANGE `invite_date_used` `invite_date_used` DATETIME DEFAULT NULL ;
|
||||
|
||||
ALTER TABLE `prefix_blog` CHANGE `blog_type` `blog_type` ENUM( 'personal', 'open', 'invite', 'close' ) DEFAULT 'personal';
|
Loading…
Reference in a new issue