Я обещал написать статью о переезде с Альто 1.0 на версию 1.1. Но долго с этим тянул, т.к. ломал голову, как максимально упростить этот процесс. Собственно, в этом переезде есть две особенности:
1) Изменение структуры базы данных, причем, не просто добавление/изменение таблиц и полей базы, но и перенос данных из старой структуры в новую. И если у вас база большая, а сервер слабенький, то автоматическая конвертация может не пройти, и придется выполнять ее вручную.
2) Изменился механизм загрузки изображений и добавился функционал, который повлек за собой изменения в шаблонах. Поэтому, если вы используете какие-то свои шаблоны или старые шаблоны от LS, то для корректной их работы потребуется их адаптировать.
Подготовка к переезду и автоматическая конвертация базы данных
Не устаю повторять, что любые манипуляции с базой данных и работающим сайтом можно выполнять только сделав в обязательном порядке бэкап (архив текущей базы и сайта), чтобы в случае, если что-то пошло не так, можно было бы вернуться к изначальному состоянию.И после того, как вы готовы, можете приступать к переезду. Вполне возможно, что конвертация базы у вас пройдет нормально в автоматическом режиме, поэтому с этого и надо начать.
Скачиваете и распаковываете архив свежей версии Alto CMS отсюда или с гитхаба (последний официальный релиз вы можете взять здесь). Из этого архива для обновления потребуются папки /common, /engine и /install. Вот их и надо вам скопировать в соответствующие папки своего сайта.
После этого заходите на свой сайт и у вас открывается страница установки Alto CMS. Идете по шагам:
- Шаг 1: просто жмете «Далее»
- Шаг 2: Указываете настройки подключения к БД и префикс таблиц и выбираете Конвертировать базу Alto CMS 1.0.x в Alto CMS 1.1
- Шаг 3: Обязательно отметьте «галочку» Пропустить установку администратора
- Шаг 4: Конвертация завершена.
Ручное изменение структуры базы данных
Если что-то пошло не так и во время автоматической конвертации возникли ошибки, то можно попробовать сконвертировать базу данных вручную. Если, конечно, вы понимаете, что такое phpMyAdmin и можете выполнить SQL-запрос. Если для вас эти слова — китайская грамота, то у вас два варианта: найти того, кто вам поможет, либо вернуть все назад, как было (см. самое начало про бэкап). А для остальных продолжу.Есть в движке такой файл: /install/db/convert_1.0_to_1.1.sql — это набор SQL-запросов для конвертации базы данных из версии 1.0 в версию 1.1. Вот эти запросы вам и нужно выполнить. Запросы разбиты по шагам (всего их 15 и каждый начинается с — STEP N). Вот по этим шагам и вводите их в phpMyAdmin и выполняйте.
Может такое быть, что при попытке автоматической конвертации часть запросов уже выполнилась, тогда вы будете получать сообщения, вроде такого:
Duplicate column name 'xxxxxx'Ничего страшного, это просто означает, что эта команда уже была выполнена на этапе автоконвертации, и вы можете переходить к следующему шагу. И так, шаг за шагом, нуобходимо выполнить все команды.
Адаптация шаблонов (минимальный вариант)
ВАЖНО: если вы используете один из стандартных шаблонов версии 1.0 start-kit или experience, в которых не меняли верстку (свои CSS-стили не в счет), то вам ничего адаптировать не нужно, просто берете шаблон из версии движка 1.1, добавляете к нему свои стили (если есть) и дальше не читаете, т.к. на этом ваш переезд завершен.Если у вас какой-то свой шаблон, или вы переделывали под себя верстку стандартных шаблонов, то для начала почитайте об изменениях в шаблонах версии 1.1 в этой статье: https://altocms.ru/963.html
Там же в комментариях, кстати, было высказывание, что я излишне оптимистичен относительно того, что получится обеспечить совместимость движка со старыми шаблонами без особых проблем. Должен признать, что скепсис отчасти оправдался. Думаю, можно было бы при бОльшем желании и при бОльших трудозатратах эту совместимость сделать почти 100%-ной. Но слишком уж корявыми и вызывающе громоздкими получались эти «костыли совместимости», поэтому от них, в итоге, пришлось отказаться.
В общем, сейчас ситуация такая: совсем без переделок старые шаблоны использовать в новой версии не получится, но минимальный вариант этих доработок не так уж и велик. Подчеркну — речь именно о минимальном варианте, чтобы шаблоны заработали и загружались фотографии. Для тех, кто захочет доработать шаблоны до 100%-ной совместимости, будет отдельная статья с необходимыми подробностями и примерами.
Итак, перечень минимальных доработок можно получить вот здесь: https://github.com/altocms/alto-skin_update_1.0-1.1
Там две папки с измененными файлами для двух стандартных скинов — start-kit и experience. Если ваш шаблона основан на основе одного из них, и если вы не меняли у себя эти файлы, то можете просто скопировать их к себе и все должно заработать (не забудьте только очистить кеш). Либо, если вы в эти файлы вносили правки, то придется внимательно изучить, что же там изменилось и адаптировать свои файлы шаблонов.
И еще одну вещь нужно сделать — найдите эти файлы:
common/templates/skin/ваш_шаблон/settings/config/assets.php
common/templates/skin/ваш_шаблон/settings/config/config.php
И в них замените:
$config['head']['default']['js'] — на $config['assets']['default']['js']
$config['head']['default']['css'] — на $config['assets']['default']['css']
Вот, собственно, и все. Букв получилось много, т.к. старался максимально доходчиво все описать. А статья о том, как адаптировать шаблоны под 1.1 с деталями и подробностями уже готова, и скоро будет опубликована.
Соответственно, если ассеты переопределяются для шаблона, то лучше их тоже вынести в отдельный файл, как, например, сделано здесь: common/templates/skin/experience/settings/config/assets.php (ассеты для шаблона experience).
НО! Если вы, как и раньше, определите конфиг-секцию head.default, то она точно также будет подхватываться движком и обрабатываться. Т.е. в этом плане обратная совместимость соблюдается.
Так что я не вполне понял, в чем суть проблемы.
$config['head']['default']['js'] — на $config['assets']['default']['js']
$config['head']['default']['css'] — на $config['assets']['default']['css']
и все будет хорошо
Собственно речь о том, что в инструкции про это не сказано…