Skip to content

C0deWiser/chapaev_migrate

Repository files navigation

Миграции

Описание

Данное приложение осуществляет миграцию данных и файлов с сайта https://chapaev.media в его новую версию, написанную на CMS Joomla.

Приложение должно выполняться на том же сервере, где размещена новая версия сайта. Приложение должно иметь подключения к базе данных старого сайта и к базе данных нового сайта.

Требования

Приложение является консольным и требует php@8.2 для своей работы. Для установки зависимостей требуется Composer.

Установка

Все команды выполняются в корневой папке данного приложения.

  1. Проверить окружение composer check-platform-reqs
  2. Установить зависимости composer i
  3. Скопировать файл .env.example в .env
  4. Создать ключ приложения 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.

Миграции идемпотенты. Их можно вызывать многократно; запись, если уже была перенесена в новую базу данных, будет обновлена; удвоение записей не происходит.

Файлы со старого сайта на новый копируются только один раз, поэтому первый запуск миграций будет выполняться долго. При повторных запусках копирование файлов не производится, поэтому миграции будут выполняться гораздо быстрее.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors