Как правильно перенести базу данных в October CMS

При разработке сайта мы всегда сначала работаем на его локальной или тестовой копии. После того, как процесс разработки завершён, настаёт момент переноса на боевой сервер. Если сайт статичен - проблем не возникает никаких.

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

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

Чем переносить.

Самый популярный и простой вариант - phpMyAdmin.

В нем мы делаем экспорт тех таблиц, что нам нужны, с указанием нужных опций - сохранять ли ключи, сбрасывать ли таблицы, если они уже были созданы и так далее. Экспортируем файл в формате SQL.

Что переносить.

Абсолютно все Таблицы переносить смысла нет - база будет другая, много системных настроек не будут актуальными.

Что нужно переносить:

  1. Все Таблицы самописных плагинов
  2. Записи в таблицах пользователей - если есть такая необходимость. Например, если это блог и необходимо не терять авторство привязанных постов, которые уже созданы на тестовом сайте.
  3. Системные Таблицы October CMS, в частности - содержащие в себе ссылки на прикреплённые файлы.

Стоит обмолвиться, что перенос таблиц сторонних плагинов, установленных через магазин October, лучше делать в режиме передачи данных - сначала установить «чистый» плагин, затем подтянуть данные из дампа, следя при этом за версиями.

Особое внимание уделяем таблице system_files. В ней хранятся связи загруженных файлов с экземплярами моделей. То есть, чтобы на новом сайте заработали изображения и картинки, необходимо содержимое этой таблицы, сами файлы изображений и собственно, записи в наших плагинах, которые хранятся в собственных таблицах.

Дополнительно стоит обратить внимание на настройки экспорта, отвечающие за перезапись данных, если таблицы уже существуют и/или не пусты:

Что должно получиться

В итоге новый сайт должен обладать идентичными набором информации с тестовым. Не стоит забывать о том, что нужно подкинуть загруженные файлы новому сайту, которые по умолчанию загружаются в папку storage/app/

После всех проделанных процедур перенос сайта считается завершенным.