Jump to content

Синхронизация БД

Featured Replies

Posted
comment_117858

Всем привет. Такой вопрос технический: переносим сайт с 3.х на 4.1, конвертим базу, допиливаем. Но во время допила меняется старая бд по старому адресу и ее же нужно проапдейтить там, где вносились изменения. Так вот, если старую обновленную сконвертить и подложить под новую - все прокатит? Или как такое можно осуществить вообще?

comment_117872

У меня была такая же проблема. Форум большой и активный, пока конвертируешь базу, уже новые сообщения на форум приходят. Пришлось просто на сутки закрыть форум для технических работ.

comment_117885
3 часа назад, Munchkin сказал:

переносим сайт с 3.х на 4.1, конвертим базу, допиливаем. Но во время допила меняется старая бд по старому адресу и ее же нужно проапдейтить там,

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

3 часа назад, Munchkin сказал:

Так вот, если старую обновленную сконвертить и подложить под новую - все прокатит

Нет конечно.

3 часа назад, Munchkin сказал:

Или как такое можно осуществить вообще?

Если очень хочется, то я в подобных случаях просто вывешивал по старому урлу объяву, что на форуме технические работы и просьба ко всем только читать, но не писать.  Активность конечно снижается, но форум доступен как минимум для поисковиков

  • Author
comment_117932

Я так понимаю, что переходить с 3.4 на 4.1 нужно через 3.4.9?

Попробовал обновиться на 3.4.9 - пропали блоги и галерея куда-то, загруженные картинки. Все делаю на тестовом серваке. 

Ладно, после 3.4.9 накатил 4.1 - попросило перекодировать бд. Проверяю бд - таблицы в  utf8_unicode_ci  и  utf8_general_ci . Какая кодировка нужна для 4.1? Пробовал запустить ту тулу, что идет с релизом - не хватает времени все переконвертить - вываливается 500-ая.

comment_117937
57 минут назад, Munchkin сказал:

Проверяю бд - таблицы в  utf8_unicode_ci  и  utf8_general_ci . Какая кодировка нужна для 4.1? Пробовал запустить ту тулу, что идет с релизом - не хватает времени все переконвертить - вываливается 500-ая.

Есть такая проблема. Решил дампом базы в файл и ручной заменой collation на нужную: utf8_unicode_ci. Просто правкой текста в дампе. Затем восстановление дампа в базу обратно. Только сначала у самой базы поменяйте collation, иначе таблицы опять в неправильной кодировке могут восстановиться.

Также учтите, что IPS4 требует php5.6 или php7.0.

  • Author
comment_117938

Так можно же у таблиц менять коллейнш прямо на сервере. 

А с версией пхп заранее вопрос уже решил.

Попробовал поменять сравнение и перезапустить установку - количество таблиц для конвертации не уменьшилось, как было 210, так и осталось.

comment_117940
3 минуты назад, Munchkin сказал:

Так можно же у таблиц менять коллейнш прямо на сервере. 

 

Можно, конечно, а сколько таких таблиц в базе данных, более 100? А еще бывает, что collation указывается в полях каждой таблицы :) 

Так как вы проблему решили?

  • Author
comment_117941

Еще никак не решил. И надо узнать, куда еще делись блоги и галереи после апгрейда на 3.4.9 )

comment_117943
5 минут назад, Munchkin сказал:

куда еще делись блоги и галереи после апгрейда на 3.4.9

восстановите бэкап и делайте апгрейд сразу на четверку. по крайней мене я не апгрейдил до последней тройки, все получилось автоматом. С collation пришлось повозиться, но у меня база более 1GB и средствами mysql конвертировать не реально.

  • Author
comment_117944

Я пробовал сразу накатывать на 3.4.5 - вылазили ошибки, что типа каких-то таблиц не хватает, поэтому попробовал через 3.4.9 - хоть какой-то прогресс.

comment_117945
1 час назад, Munchkin сказал:

Проверяю бд - таблицы в  utf8_unicode_ci  и  utf8_general_ci . Какая кодировка нужна для 4.1?

4 ка хочет, что бы была utf8_unicode_ci .  Что бы не заниматься херней при апгрейде лучше заранее на рабочем форуме перекодировать в utf8_unicode_ci . Считается, что utf8_unicode_ci медленнее utf8_general_ci , но ни фига вы не заметите. А тройка работает и на utf8_unicode_ci.

Для того, что бы перекордиовать базу надо вначале запустить следующий запрос

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;') as sqlcode
  FROM `information_schema`.`TABLES` t
WHERE 1
  AND t.`TABLE_SCHEMA` = 'ВАША БАЗА'

получите список запросов, которые надо выполнить (по одному на всякий случай). Займет все полчаса времени, зато не будет проблем с переконвертацией при апгрейде

 

  • Author
comment_117947

На таком запросе выскакивает ошибка ALTER TABLE `база`.`star_search_keywords` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

SQL запрос:

ALTER TABLE `база`.`star_search_keywords` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci

Ответ MySQL: 

#1062 - 

  • Author
comment_117948

перезапустил апдейтер после того как сделал альтер для всех таблиц - все равно показывает 210 для конвертации

comment_117954
34 минуты назад, Munchkin сказал:

На таком запросе выскакивает ошибка ALTER TABLE `база`.`star_search_keywords`

А что это за таблица такая?

22 минуты назад, Munchkin сказал:

все равно показывает 210 для конвертации

А посмотреть в какой кодировке таблицы?

  • Author
comment_117955
2 минуты назад, kgb сказал:

А что это за таблица такая?

А чтоб я знал. Я ее очистил и конвертнул.

Сейчас все такблицы выглядят так в пхпМайАдмине:

https://i.gyazo.com/aba7f58be24d0ce473441426a336665d.png

Странно... там при установке кеша никакого нет? Сейчас Апгрейд дальше пошел.

comment_117956

Если все в юникоде, но апгрейд все равно просит конвертировать, значит в таблицах присутствуют поля в другом collation.

  • Author
comment_117958

В ходе апгрейда вылезло такое:  Column count doesn't match value count at row 1 
/var/www/admin/www/forum.star-citizen-ru.ru/applications/core/sources/Setup/Upgrade.php::664

 

будем дальше гуглить...

comment_117960
49 минут назад, Munchkin сказал:

А чтоб я знал. Я ее очистил и конвертнул

Вообще то перед обновление хорошо бы удалить все лишние приложения и хуки. Вообще дохрена что надо сделать перед обновлением.

 

50 минут назад, Munchkin сказал:

Странно... там при установке кеша никакого нет

При установке нет, зато у браузеров есть.

 

35 минут назад, Munchkin сказал:

olumn count doesn't match value count at row

Какого поля не хватает.

comment_117964
1 час назад, Munchkin сказал:

 

В ходе апгрейда вылезло такое:  Column count doesn't match value count at row 1 

 

Если есть возможность продолжить апгрейд, то так и следует поступить, не обращая внимание на ошибки. Так же форум может просить выполнить некоторые mysql запросы вручную. Их следует скопировать в phpmyadmin и выполнить. Если будут ошибки, сразу поймете в чем дело.

  • Author
comment_117969

Продолжать я пробую, только потом опять выскакивает это опять. Ладно, завтра попробую опять все проделать заново. А где можно почитать, что именно нужно сделать перед апгрейдом? Что отключать, что удалять?

comment_117970

Отключить все расширения, плагины и т.п. Оставить только папку uploads и public, conf_global.php, остальное удалить. Загружаем новый дистрибутив - и поехали: /admin/upgrade. Перед апгрейдом лучше подготовить базу в ручную, конвертировав в utf8 и обновив collation на utf8_unicode_ci. Более подробные инструкции ищите на форуме и в интернете. 

  • Author
comment_117997

Сделал все как вы описали:

1. Почистил ненужные таблицы

2. Конвертнул

3. Отключил все хуки

4. Отключил все приложения кроме форума и пользователей

5. Перекинул тему на стандартную 

6. Удалил папки, оставив только те, что нужны (хотя то что в них было перезаписалось, поэтому все равно из бекапа надо будет перекидывать)

7. Закачал установочные файлы и запустил обнову.

Все прошло как по маслу...

  • Author
comment_117998

Единственное, что не нравится на обновленном форуме - это ЧПУ, которые имеют вид домен/forums/forum/подфорум/. Это forums вообще можно как-нибудь убрать?

comment_118007

Munchkin, Это часть адреса её нельзя убрать просто так. Все метатеги меняются в АЦ-Сисиетма-Поисковая оптимизация. Там ты можешь назвать как угодно тег  forums

comment_118039
10 часов назад, Munchkin сказал:

домен/forums/

В четверке логика URL другая. Первый слеш определяет приложение, которые вы запускаете: форум, календарь, галерею и т.п. Второй слеш - раздел в приложении :) 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.