Перейти к основному содержимому
Версия: 7.0

Linux

осторожно

Данная инструкция предпологает:

  • Физическое расположение Пассворка — /var/www/
  • Версия PostgreSQL >= 14.

Важно: миграция базы данных с ODM на ORM возможна только после миграции Пассворка на версию 7.

Миграция с созданием базы в PostgreSQL

Создать файл — ./.env.local:

OBJECT_MAPPER=ORM

Очистить временный кеш Пассворка:

sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'

Выполнить прогрев кэша:

sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'

Изменить конфигурационный файл Пассворка — ./init/config.env:

APP_URL=https://your_host
DATABASE_URL=postgresql://username:password@pgsql_host:5432/pw?serverVersion=16&charset=utf8

MIGRATION_DATABASE_URL=mongodb://mongo_host:27017
MIGRATION_DATABASE_DB=pw
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=

Описание параметров

  • DATABASE_URL — строка подключения к PostgreSQL серверу
  • Если PostgreSQL установлен на отдельном сервере:
    • В конфигурационном файле postgresql.conf нужно изменить параметр listen_addresses;
    • В конфигурационном файле pg_hba.conf нужно прописать возможность подключения Пассворка с помощью postgres пользователя к PgSQL.
  • MIGRATION_DATABASE_URL — значение параметра MONGODB_URL
  • MIGRATION_DATABASE_DB — значение параметра MONGODB_DB
  • MIGRATION_DATABASE_USERNAME — значение параметра MONGODB_USERNAME
  • MIGRATION_DATABASE_PASSWORD — значение параметра MONGODB_PASSWORD

Запуск миграции

sudo -u www-data bash -c 'cd /var/www && php bin/console doctrine:database:create'
sudo -u www-data bash -c 'cd /var/www && php bin/console doctrine:migrations:migrate --no-interaction'
sudo -u www-data bash -c 'cd /var/www && yes | php bin/console database:orm:migration'

Процесс миграции базы данных Пассворка в PostgreSQL:

Процесс миграции базы данных Пассворка в PostgreSQL

После завершения следующие параметры в config.env больше не нужны и их можно удалить:

MIGRATION_DATABASE_URL=mongodb://mongo_host:27017
MIGRATION_DATABASE_DB=pw
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=

Миграция с уже созданной базой в PostgreSQL

Создать файл — ./.env.local:

OBJECT_MAPPER=ORM

Очистить временный кеш Пассворка:

sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'

Выполнить прогрев кэша:

sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'

Изменить конфигурационный файл Пассворка — ./init/config.env:

APP_URL=https://your_host
DATABASE_URL=postgresql://username:password@pgsql_host:5432/pw?serverVersion=16&charset=utf8

MIGRATION_DATABASE_URL=mongodb://mongo_host:27017
MIGRATION_DATABASE_DB=pw
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=

Описание параметров

  • DATABASE_URL — строка подключения к PostgreSQL серверу
  • Если PostgreSQL установлен на отдельном сервере:
    • В конфигурационном файле postgresql.conf нужно изменить параметр listen_addresses;
    • В конфигурационном файле pg_hba.conf нужно прописать возможность подключения Пассворка с помощью username пользователя к PgSQL.
  • MIGRATION_DATABASE_URL — значение параметра MONGODB_URL
  • MIGRATION_DATABASE_DB — значение параметра MONGODB_DB
  • MIGRATION_DATABASE_USERNAME — значение параметра MONGODB_USERNAME
  • MIGRATION_DATABASE_PASSWORD — значение параметра MONGODB_PASSWORD

Запуск миграции

sudo -u www-data bash -c 'cd /var/www && php bin/console doctrine:migrations:migrate --no-interaction'
sudo -u www-data bash -c 'cd /var/www && yes | php bin/console database:orm:migration'

Процесс миграции базы данных Пассворка в PostgreSQL:

Процесс миграции базы данных Пассворка в PostgreSQL

После завершения следующие параметры в config.env больше не нужны и их можно удалить:

MIGRATION_DATABASE_URL=mongodb://mongo_host:27017
MIGRATION_DATABASE_DB=pw
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=