При разработке сайта мы всегда сначала работаем на его локальной или тестовой копии. После того, как процесс разработки завершён, настаёт момент переноса на боевой сервер. Если сайт статичен - проблем не возникает никаких.
Однако в нашей практике при разработке интернет-магазинов, да и других видов сайтов, частой является такая схема работы: клиенту нужно, чтобы на момент запуска на сайт уже были загружены все товары, статьи и так далее. Зачастую клиент предпочитает делать это сам. В этом случае мы всегда предоставляем доступ к тестовому сайту, где клиент делат все, что ему нужно, попутно разбираясь с админкой и функциями проекта, тем самым серьезно экономя время, затрачиваемое на изучение функционала.
Важно понимать, что перенос базы данных с тестового сайта также необходимо произвести. При этом перенос не всей базы, а лишь ее части - нельзя просто взять дамп и перезалить на другой сервер. Тем не менее, многие моменты переноса могут оказаться не такими очевидными. Об этом и поговорим.
Чем переносить.
Самый популярный и простой вариант - phpMyAdmin.
В нем мы делаем экспорт тех таблиц, что нам нужны, с указанием нужных опций - сохранять ли ключи, сбрасывать ли таблицы, если они уже были созданы и так далее. Экспортируем файл в формате SQL.
Что переносить.
Абсолютно все Таблицы переносить смысла нет - база будет другая, много системных настроек не будут актуальными.
Что нужно переносить:
- Все Таблицы самописных плагинов
- Записи в таблицах пользователей - если есть такая необходимость. Например, если это блог и необходимо не терять авторство привязанных постов, которые уже созданы на тестовом сайте.
- Системные Таблицы October CMS, в частности - содержащие в себе ссылки на прикреплённые файлы.
Стоит обмолвиться, что перенос таблиц сторонних плагинов, установленных через магазин October, лучше делать в режиме передачи данных - сначала установить «чистый» плагин, затем подтянуть данные из дампа, следя при этом за версиями.
Особое внимание уделяем таблице system_files. В ней хранятся связи загруженных файлов с экземплярами моделей. То есть, чтобы на новом сайте заработали изображения и картинки, необходимо содержимое этой таблицы, сами файлы изображений и собственно, записи в наших плагинах, которые хранятся в собственных таблицах.
Дополнительно стоит обратить внимание на настройки экспорта, отвечающие за перезапись данных, если таблицы уже существуют и/или не пусты:
Что должно получиться
В итоге новый сайт должен обладать идентичными набором информации с тестовым. Не стоит забывать о том, что нужно подкинуть загруженные файлы новому сайту, которые по умолчанию загружаются в папку storage/app/
После всех проделанных процедур перенос сайта считается завершенным.