Обновление движка до версии 2.1 (R600)

Exile

Администратор
Доброго времени суток.

Перед выполнением каких-либо действий по обновлению, полностью прочитайте эту инструкцию!

В процессе подготовки к релизу версии 2.1, мы столкнулись с тем, что из-за большого временного разрыва между стабильными версиями, у нас слишком большая фрагментация по ревизиям. У пользователей представлен огромный диапазон используемых ими ревизий трекеров, начиная с R400, заканчивая R599. В связи с этим, написание универсального конвертера, который будет учитывать особенности всех ревизий, является нецелесообразным. Из-за этого обновление базы данных выполняется частично вручную, путем выполнения запросов, которые указаны в этой теме. Это значительно проще, чем кажется.

Перед выполнением каких-либо действий по обновлению, в первую очередь, обязательно сделайте бекап базы данных. Потому что это ваша единственная возможность откатить ваш ресурс в исходное состояние, если у вас что-то пойдет не так. Также запомните номер ревизии движка, которая у вас в настоящий момент установлена, она указана на главной странице администраторского раздела.

Для начала, скачайте из нашего

Please Login or Register to view hidden text.

стабильную версию 2.1 (R600) и распакуйте архив с ней. Скачанные файлы из папки upload загрузите на ваш сервер с перезаписью всех имеющихся там аналогичных файлов. После этого, вам потребуется поправить параметры доступа к базе данных и имя сервера в файле config.php - вам необходимо будет заменить их на свои, корректные:
Код:
'db1' => array('localhost', 'dbase', 'user', 'pass', $charset, $pconnect)
В данной строке изменяем данные входа в базу данных
 
$domain_name = 'torrentpier.com';
В данной строке указываем ваше доменное имя. Остальные правки в файле вносятся по усмотрению, исходя из необходимости из внесения (ориентируйтесь на описания, указанные у полей).
Также переименуйте папку language/lang_russian в language/russian, чтобы у форума были временные языковые переменные для процесса обновления. После обновления форума эту папку надо будет удалить.

Файлы движка обновлены - для его корректной работы осталось обновить базу данных, чтобы пропали все ошибки, которые у вас появятся после обновления на всех страницах. Дальнейшие действия зависят от того, какая у вас стояла ревизия изначально. Если ревизия R400 - выполняйте все запросы, указанные ниже. Если у вас ревизия, например, 573 - то только запросы, относящиеся к следующей ревизии с правками в базе, то есть выполнение запросов начинайте с ревизии 579.

Если какой-то запрос не выполняется и выдает ошибку, что якобы нет поля в базе и т.п. - просто пропускайте его, переходите к следующему. Проблемные запросы отпишите в этой теме - каждый случай рассмотрим индивидуально. Во время выполнения запросов форум отключать не нужно (если хотите ограничить доступ для пользователей - пользуйтесь файлом .htaccess и аналогичными методами).
Ревизия 407:
PHP:
INSERT INTO `bb_config` VALUES ('tor_comment', '1');

Ревизия 458:
PHP:
ALTER TABLE `bb_posts` ADD `post_mod_comment` TEXT NOT NULL DEFAULT '';
ALTER TABLE `bb_posts` ADD `post_mod_comment_type` TINYINT( 1 ) NOT NULL DEFAULT '0';
ALTER TABLE `bb_posts` ADD `post_mc_mod_id` mediumint(8) NOT NULL;
ALTER TABLE `bb_posts` ADD `post_mc_mod_name` varchar(25) NOT NULL DEFAULT '';

Ревизия 496:

Запустите в корне вашего трекера файл r496-user_birthday.php из папки upgrade и удалите его после успешного обновления базы им. Выдает ошибку про отсутствующую функцию realdate? Прочитайте сообщение чуть ниже или перекачайте архив.

Ревизия 507:
PHP:
ALTER TABLE `bb_users` ADD `tpl_name` varchar(255) NOT NULL DEFAULT 'default';

Ревизия 508:
PHP:
UPDATE `bb_config` SET `config_value` = '1' WHERE `config_name` = 'bt_unset_dltype_on_tor_unreg';

Ревизия 537:
PHP:
ALTER TABLE `bb_users` DROP `ignore_srv_load`;

Ревизия 540:
PHP:
UPDATE `bb_users` SET `username` = 'Guest' WHERE `user_id` = -1;

Ревизия 551:
PHP:
DROP TABLE IF EXISTS `bb_bt_torrents_del`;
DROP TABLE IF EXISTS `xbt_announce_log`;
DROP TABLE IF EXISTS `xbt_config`;
DROP TABLE IF EXISTS `xbt_deny_from_hosts`;
DROP TABLE IF EXISTS `xbt_files_users`;
DROP TABLE IF EXISTS `xbt_scrape_log`;
ALTER TABLE `bb_bt_tracker` DROP `xbt_error`;
DELETE FROM `bb_config` WHERE `config_name` = 'torrent_pass_private_key';

Ревизия 552:
PHP:
DELETE FROM `bb_config` WHERE `config_name` = 'board_email';
DELETE FROM `bb_config` WHERE `config_name` = 'board_email_form';
DELETE FROM `bb_config` WHERE `config_name` = 'board_email_sig';
DELETE FROM `bb_config` WHERE `config_name` = 'smtp_delivery';
DELETE FROM `bb_config` WHERE `config_name` = 'smtp_host';
DELETE FROM `bb_config` WHERE `config_name` = 'smtp_password';
DELETE FROM `bb_config` WHERE `config_name` = 'smtp_username';

Ревизия 554:
PHP:
DELETE FROM `bb_config` WHERE `config_name` = 'gallery_enabled';
DELETE FROM `bb_config` WHERE `config_name` = 'pic_dir';
DELETE FROM `bb_config` WHERE `config_name` = 'pic_max_size';
DELETE FROM `bb_config` WHERE `config_name` = 'auto_delete_posted_pics';

Ревизия 555:
PHP:
DELETE FROM `bb_config` WHERE `config_name` = 'allow_avatar_remote';

Ревизия 558:
PHP:
ALTER TABLE `bb_topics` DROP COLUMN `is_draft`;

Ревизия 565:
PHP:
DELETE FROM `bb_config` WHERE `config_name` = 'bt_add_comment';
DELETE FROM `bb_config` WHERE `config_name` = 'bt_add_publisher';
DELETE FROM `bb_config` WHERE `config_name` = 'bt_gen_passkey_on_reg';

Ревизия 571:
PHP:
DROP TABLE IF EXISTS `sph_counter`;

Ревизия 571:

Запустите в корне вашего трекера файл r571-dl_upgrade.php из папки upgrade и удалите его после успешного обновления базы им.

Ревизия 573:
PHP:
DELETE FROM `bb_config` WHERE `config_name` = 'max_inbox_privmsgs';
DELETE FROM `bb_config` WHERE `config_name` = 'max_savebox_privmsgs';
DELETE FROM `bb_config` WHERE `config_name` = 'max_sentbox_privmsgs';
DELETE FROM `bb_config` WHERE `config_name` = 'privmsg_disable';

Ревизия 575:

Запустите в корне вашего трекера файл r575-poll_upgrade.php из папки upgrade и удалите его после успешного обновления базы им.

Ревизия 579:
PHP:
DELETE FROM `bb_config` WHERE `config_name` = 'config_id';
DELETE FROM `bb_config` WHERE `config_name` = 'sendmail_fix';
DELETE FROM `bb_config` WHERE `config_name` = 'version';
DELETE FROM `bb_config` WHERE `config_name` = 'xs_add_comments';
DELETE FROM `bb_config` WHERE `config_name` = 'xs_auto_compile';
DELETE FROM `bb_config` WHERE `config_name` = 'xs_auto_recompile';
DELETE FROM `bb_config` WHERE `config_name` = 'xs_php';
DELETE FROM `bb_config` WHERE `config_name` = 'xs_shownav';
DELETE FROM `bb_config` WHERE `config_name` = 'xs_template_time';
DELETE FROM `bb_config` WHERE `config_name` = 'xs_version';

Ревизия 582:
PHP:
SET GLOBAL sql_mode = '';
SET SESSION sql_mode = '';
INSERT INTO `bb_cron` VALUES (22, 1, 'Attach maintenance', 'attach_maintenance.php', 'daily', NULL, '05:00:00', 40, '', '', NULL, 1, '', 0, 1, 0);

Ревизия 583:
PHP:
DELETE FROM `bb_config` WHERE `config_name` = 'allow_avatar_local';
DELETE FROM `bb_config` WHERE `config_name` = 'allow_avatar_upload';
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_filesize';
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_gallery_path';
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_max_height';
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_max_width';
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_path';
DELETE FROM `bb_config` WHERE `config_name` = 'require_activation';
DELETE FROM `bb_config` WHERE `config_name` = 'no_avatar';
UPDATE `bb_config` SET `config_value` = '0' WHERE `config_name` = 'show_mod_index';
DELETE FROM `bb_cron` WHERE `cron_script` = 'avatars_cleanup.php';
UPDATE `bb_cron` SET `cron_id` = '3' WHERE `cron_script` = 'attach_maintenance.php';

Ревизия 583:

Запустите в корне вашего трекера файл r583-convert_avatars.php из папки upgrade и удалите его после успешного обновления базы им. Выдало сообщение про то, что у части пользователей не были изменены аватарки? Попросите их установить их заново, т.к. они не подошли либо по размеру, либо по формату.

Ревизия 584:
PHP:
DROP TABLE IF EXISTS `bb_topic_templates`;
ALTER TABLE `bb_forums` DROP `topic_tpl_id`;

Ревизия 586:
PHP:
UPDATE `bb_config` SET `config_value` = 'http://ip-whois.net/ip_geos.php?ip=' WHERE `config_name` = 'whois_info';

Ревизия 588:
PHP:
UPDATE `bb_config` SET `config_value` = 'ru' WHERE `config_name` = 'default_lang';

Ревизия 588:

Запустите в корне вашего трекера файл r588-short_lang.php из папки upgrade и удалите его после успешного обновления базы им.

Ревизия 589:
PHP:
ALTER TABLE `bb_users` DROP `user_next_birthday_greeting`;

Ревизия 590:
PHP:
ALTER TABLE `bb_posts` CHANGE `post_mod_comment` `mc_comment` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
ALTER TABLE `bb_posts` CHANGE `post_mod_comment_type` `mc_type` TINYINT(1) NOT NULL DEFAULT '0';
ALTER TABLE `bb_posts` CHANGE `post_mc_mod_id` `mc_user_id` MEDIUMINT(8) NOT NULL DEFAULT '0';
ALTER TABLE `bb_posts` DROP `post_mc_mod_name`;

Ревизия 592:
PHP:
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'allow_ftp_upload';
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_server';
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_path';
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'download_path';
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_user';
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_pass';
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_pasv_mode';
DELETE FROM `bb_extensions` WHERE `extension` = 'wma';
DELETE FROM `bb_extensions` WHERE `extension` = 'swf';
UPDATE `bb_extensions` SET `group_id` = '6' WHERE `extension` = 'torrent';
DELETE FROM `bb_extension_groups` WHERE `group_name` = 'Streams';
DELETE FROM `bb_extension_groups` WHERE `group_name` = 'Flash Files';
UPDATE `bb_extension_groups` SET `group_id` = '6' WHERE `group_id` = 8;

Ревизия 593:
PHP:
SET GLOBAL sql_mode = '';
SET SESSION sql_mode = '';
INSERT INTO `bb_config` VALUES ('sitemap_time', '');
INSERT INTO `bb_config` VALUES ('static_sitemap', '');
INSERT INTO `bb_cron` VALUES (22, 1, 'Sitemap update', 'sitemap.php', 'daily', NULL, '06:00:00', 30, '', '', NULL, 0, '', 0, 0, 0);

Ревизия 595:
PHP:
SET GLOBAL sql_mode = '';
SET SESSION sql_mode = '';
INSERT INTO `bb_cron` VALUES (23, 1, 'Update forums atom', 'update_forums_atom.php', 'interval', NULL, NULL, 255, '', '', '00:15:00', 0, '', 0, 0, 0);
UPDATE `bb_attachments_config` SET `config_value` = 'old_files' WHERE `config_name` = 'upload_dir';

Ревизия 596:
PHP:
DELETE FROM `bb_smilies` WHERE `code` = ':cd:';

Ревизия 598:
PHP:
ALTER TABLE `bb_groups` CHANGE `group_description` `group_description` text NOT NULL DEFAULT '';
ALTER TABLE `bb_groups` ADD `avatar_ext_id` int(15) NOT NULL DEFAULT '0' AFTER `group_id`;
ALTER TABLE `bb_groups` ADD `mod_time` INT(11) NOT NULL DEFAULT '0' AFTER `group_time`;
ALTER TABLE `bb_groups` ADD `release_group` tinyint(4) NOT NULL DEFAULT '0' AFTER `group_type`;
ALTER TABLE `bb_groups` ADD `group_signature` text NOT NULL DEFAULT '' AFTER `group_description`;
ALTER TABLE `bb_posts` ADD `poster_rg_id` mediumint(8) NOT NULL DEFAULT '0' AFTER `poster_ip`;
ALTER TABLE `bb_posts` ADD `attach_rg_sig` tinyint(4) NOT NULL DEFAULT '0' AFTER `poster_rg_id`;

Ревизия 599b:
PHP:
INSERT INTO `bb_config` VALUES ('terms', '');
База обновлена. Переименуйте папку files в old_files и очистите все виды кеша на главной странице администраторского раздела (если зайти в него не удается - очистите содержимое папки cache на сервере). Теперь у вас полноценно работающая стабильная ревизия 2.1 (R600). Осталось лишь удалить мусор, оставшийся от старой ревизии. Для этого удалите следующие файлы и папки:
admin/.htaccess
admin/admin_topic_templates.php
admin/admin_xs.php
admin/xs_cache.php
admin/xs_config.php
admin/xs_frameset.php
admin/xs_include.php
admin/xs_index.php
develop
images/avatars/bot.gif
images/logo/logo_big.png
images/smiles/cd.gif
images/smiles/smileys.pak
images/icon_disk.gif
images/icon_disk_gray.gif
includes/cron/jobs/avatars_cleanup.php
includes/topic_templates
includes/ucp/torrent_userprofile.php
includes/ucp/usercp_activate.php
includes/ucp/usercp_attachcp.php
includes/ucp/usercp_avatar.php
includes/ucp/usercp_bonus.php
includes/ucp/usercp_email.php
includes/ucp/usercp_register.php
includes/ucp/usercp_sendpasswd.php
includes/ucp/usercp_viewprofile.php
includes/sphinxapi.php
includes/topic_templates.php
language/lang_english
language/lang_russian
misc/html
misc/.htaccess
pictures
templates/admin/admin_topic_templates.tpl
templates/default/images/lang_english
templates/default/images/lang_russian (или просто russian, если вы переименовывали папку)
templates/default/images/index.html
templates/default/topic_templates
templates/default/agreement.tpl
templates/default/donate.tpl
templates/default/faq.tpl
templates/default/gallery.tpl
templates/default/groupcp.tpl
templates/default/posting_poll.tpl
templates/default/posting_tpl.tpl
templates/default/usercp_avatar_gallery.tpl
templates/default/viewonline.tpl
templates/xs_mod
templates/board_disabled_exit.php
templates/limit_load_exit.php
templates/topic_tpl_overall_header.html
templates/topic_tpl_rules_video.html
donate.php
download.php
faq.php
gallery.php
groupcp.php
viewonline.php
С папкой pictures будьте предельно внимательны - если вы пользовались галереей изображений, которая в версии 2.1 была удалена, не удаляйте эту папку! Также в обязательном порядке не забудьте удалить все конвертеры, которые вы загружали на сервер в процессе обновления.

Если у вас возникают какие-то вопросы по обновлению - задавайте их в этой теме. Поможем всем.
 

d1mAs1q

Пользователь
Здравствуйте, подскажите пожалуйста, где я могу найти функцию realdate()?

Код:
Fatal error: Call to undefined function realdate() in /sites/default/www/r496-user_birthday.php on line 22
 

Exile

Администратор
d1mAs1q, замените строку:
PHP:
$birthday = realdate($row['user_birthday_old'], 'Y-m-d');
на вот эту:
PHP:
$birthday = bb_date($row['user_birthday_old'] * 86400 + 1, 'Y-m-d', 0);
Готовый файл во вложении. На GitHub тоже обновил:

Please Login or Register to view hidden text.


В центре загрузки архив тоже с уже исправленным файлом.
 

Вложения

  • r496-user_birthday.zip
    997 байт · Просмотры: 14

whuru

Пользователь
Считаю следует добавить в инструкцию по обновлению фразу, что при запусках php-скриптов, которые обновляют БД от ревизии к ревизии необходимо, чтобы форум был включён! Иначе скрипты не работают! Убил на это время, пока не догадался включить форум.

И второе, когда обновлялся по инструкции с ревизии R477, два запроса пришлось править вручную:
- это добавление в крон (ID22 у меня уже был)

Please Login or Register to view hidden text.



- и вот этот запрос уже модифицирован:
PHP:
ALTER TABLE `bb_groups` CHANGE `group_description` `group_description` text NOT NULL DEFAULT '';
ALTER TABLE `bb_groups` ADD `avatar_ext_id` int(15) NOT NULL DEFAULT '0' AFTER `group_id`;
ALTER TABLE `bb_groups` ADD `group_time` int(11) NOT NULL DEFAULT '0' AFTER `avatar_ext_id`;
ALTER TABLE `bb_groups` ADD `mod_time` INT(11) NOT NULL DEFAULT '0' AFTER `group_time`;
ALTER TABLE `bb_groups` ADD `release_group` tinyint(4) NOT NULL DEFAULT '0' AFTER `group_type`;
ALTER TABLE `bb_groups` ADD `group_signature` text NOT NULL DEFAULT '' AFTER `group_description`;
ALTER TABLE `bb_posts` ADD `poster_rg_id` mediumint(8) NOT NULL DEFAULT '0' AFTER `poster_ip`;
ALTER TABLE `bb_posts` ADD `attach_rg_sig` tinyint(4) NOT NULL DEFAULT '0' AFTER `poster_rg_id`;

добавил строку:
PHP:
ALTER TABLE `bb_groups` ADD `group_time` int(11) NOT NULL DEFAULT '0' AFTER `avatar_ext_id`
 

Exile

Администратор
это добавление в крон (ID22 у меня уже был)
Расчет на стандартный комплект cron-задач.
добавил строку:
А вот это крайне странно, потому что это поле уже было в ревизии 400 и даже значительно раньше нее. Почему его не было у вас - загадка.
читаю следует добавить в инструкцию по обновлению фразу, что при запусках php-скриптов, которые обновляют БД от ревизии к ревизии необходимо, чтобы форум был включён! Иначе скрипты не работают!
Ну, наверное это логично. Добавил, конечно, но странно это все.
 

Nightmare

Легенда
Считаю следует добавить в инструкцию по обновлению фразу, что при запусках php-скриптов, которые обновляют БД от ревизии к ревизии необходимо, чтобы форум был включён! Иначе скрипты не работают! Убил на это время, пока не догадался включить форум.
Какой смелый человек прямо сразу на боевом обновляется

Не могу найти где можно это посмотреть. Не подскажете куда копать? ОС: Ubuntu Server

Все логи располагаются в папке log в движке
 
Сверху