Linux
осторожно
Данная инструкция предпологает:
- Физическое расположение Пассворка —
/var/www/
- Версия PostgreSQL >= 14.
Важно: миграция базы данных с ODM на ORM возможна только после миграции Пассворка на версию 7.
Миграция с созданием базы в PostgreSQL
Создать файл — ./.env.local:
- .env
OBJECT_MAPPER=ORM
Очистить временный кеш Пассворка:
- DEB
- RPM
sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'
sudo -u apache bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'
Выполнить прогрев кэша:
- DEB
- RPM
sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'
sudo -u apache bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'
Изменить конфигурационный файл Пассворка — ./init/config.env:
- 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.
- В конфигурационном файле postgresql.conf нужно изменить пар аметр
- MIGRATION_DATABASE_URL — значение параметра
MONGODB_URL
- MIGRATION_DATABASE_DB — значение параметра
MONGODB_DB
- MIGRATION_DATABASE_USERNAME — значение параметра
MONGODB_USERNAME
- MIGRATION_DATABASE_PASSWORD — значение параметра
MONGODB_PASSWORD
Запуск миграции
- DEB-based Linux
- Для RPM-based Linux
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'
sudo -u apache bash -c 'cd /var/www && php bin/console doctrine:database:create'
sudo -u apache bash -c 'cd /var/www && php bin/console doctrine:migrations:migrate --no-interaction'
sudo -u apache bash -c 'cd /var/www && yes | php bin/console database:orm:migration'
Процесс миграции базы данных Пассворка в PostgreSQL:

После завершения следующие параметры в config.env больше не нужны и их можно удалить:
- config.env
MIGRATION_DATABASE_URL=mongodb://mongo_host:27017
MIGRATION_DATABASE_DB=pw
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=
Миграция с уже созданной базой в PostgreSQL
Создать файл — ./.env.local:
- .env
OBJECT_MAPPER=ORM
Очистить временный кеш Пассворка:
- DEB
- RPM
sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'
sudo -u apache bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:clear'
Выполнить прогрев кэша:
- DEB
- RPM
sudo -u www-data bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'
sudo -u apache bash -c 'cd /var/www && php -d memory_limit=-1 ./bin/console cache:warmup'
Изменить конфигурационный файл Пассворка — ./init/config.env:
- 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.
- В конфигурационном файле postgresql.conf нужно изменить параметр
- MIGRATION_DATABASE_URL — значение параметра
MONGODB_URL
- MIGRATION_DATABASE_DB — значение параметра
MONGODB_DB
- MIGRATION_DATABASE_USERNAME — значение параметра
MONGODB_USERNAME
- MIGRATION_DATABASE_PASSWORD — значение параметра
MONGODB_PASSWORD
Запуск миграции
- DEB-based Linux
- Для RPM-based Linux
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'
sudo -u apache bash -c 'cd /var/www && php bin/console doctrine:migrations:migrate --no-interaction'
sudo -u apache bash -c 'cd /var/www && yes | php bin/console database:orm:migration'
Процесс миграции базы данных Пассворка в PostgreSQL:

После завершения следующие параметры в config.env больше не нужны и их можно удалить:
- config.env
MIGRATION_DATABASE_URL=mongodb://mongo_host:27017
MIGRATION_DATABASE_DB=pw
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=