Иногда возникает необходимость в копировании всей БД одного сервера на другой (создание тестовой площадки, перенос настроек и т.п.).
Перенос осуществляется в два действия - создания копии базы и восстановление базы из копии на новом сервере.
Для создания копии базы необходимо:
sudo systemctl stop vitro-server vitro-workflow pg_dump -h localhost -d vitrodb -U vitrodbuser -v -Fc -f bak/vitrodb.Fc.bak vitrodb это имя базы данных, vitrodbuser это имя пользователя-владельца базы данных, bak/vitrodb.Fc.bak путь до файла копии.-U пользователя.sudo systemctl start vitro-server vitro-workflow Для восстановления базы данных из копии нужно сперва очистить уже имеющуюся базу (если есть):
sudo systemctl stop vitro-server vitro-workflow dropdb -U vitrodbuser vitrodb vitrodb это имя базы данных, vitrodbuser это имя пользователя-владельца базы данных.psql и выполнить запрос на создание:sudo -u postgres psql CREATE DATABASE vitrodb with owner = vitrodbuser encoding = 'UTF8' LOCALE_PROVIDER = icu ICU_LOCALE = 'ru' TEMPLATE = template0 connection limit = -1; После того, как создана пустая база можно приступить к восстановлению данных из файла копии:
pg_restore -h localhost -d vitrodb -U vitrodbuser -v -Fc bak/vitrodb.Fc.bak vitrodb это имя базы данных, vitrodbuser это имя пользователя-владельца базы данных, bak/vitrodb.Fc.bak путь до файла копии.sudo systemctl start vitro-server vitro-workflow