Данное приложение осуществляет миграцию данных и файлов с сайта https://chapaev.media в его новую версию, написанную на CMS Joomla.
Приложение должно выполняться на том же сервере, где размещена новая версия сайта. Приложение должно иметь подключения к базе данных старого сайта и к базе данных нового сайта.
Приложение является консольным и требует php@8.2 для своей работы. Для
установки зависимостей требуется Composer.
Все команды выполняются в корневой папке данного приложения.
- Проверить окружение
composer check-platform-reqs - Установить зависимости
composer i - Скопировать файл
.env.exampleв.env - Создать ключ приложения
php artisan key:generate
Все настройки осуществляются объявлением переменных окружения в файле .env.
Сперва необходимо настроить подключения к базам данных: старой и новой.
Старая база данных — PostgreSQL. Её настройки:
DB_OLD_HOST=127.0.0.1
DB_OLD_DATABASE=
DB_OLD_USERNAME=
DB_OLD_PASSWORD=Новая база данных — MySQL. Её настройки:
DB_NEW_HOST=127.0.0.1
DB_NEW_DATABASE=
DB_NEW_USERNAME=
DB_NEW_PASSWORD=Дополнительные параметры для настройки подключения к базам данных можно найти в файле
config/database.php(разделыconnections.oldиconnections.new)
В переменную JOOMLA_IMAGES_PATH можно прописать полный путь к папке
/images в составе Joomla. Например:
JOOMLA_IMAGES_PATH=/path/to/joomla/images
MIGRATE_IMAGES=trueИли можно сделать symlink из папки размещения Joomla в папку storage данного приложения:
ln -s /path/to/joomla/images /path/to/this/storage/joomlaНа время тестовых прогонов рекомендуется отключить скачивание изображений:
MIGRATE_IMAGES=falseДля запуска миграции нужно выполнить команду php artisan migrate:data.
Команда запоминает текущий прогресс миграции и, если её прервать и вызвать
повторно, она продолжит выполнение миграции.
Чтобы начать миграции с начала, надо выполнить команду с флагом --reset.
Миграции идемпотенты. Их можно вызывать многократно; запись, если уже была перенесена в новую базу данных, будет обновлена; удвоение записей не происходит.
Файлы со старого сайта на новый копируются только один раз, поэтому первый запуск миграций будет выполняться долго. При повторных запусках копирование файлов не производится, поэтому миграции будут выполняться гораздо быстрее.