Самый простой способ: через утилиту pg_dump, сделав дамп всей базы.
Создаю дамп базы:
su - postgres -c 'pg_dump -v -F c --encoding=UTF-8 --blobs -f /tmp/mi.cdump mi'
На целевом сервере отсутствует БД mi:
На целевом сервере создаю пустую базу mi и выдаю права для пользователя bi (команды выполняются от имени postgres):
create database mi;
alter database mi owner to bi;
Выполняю заливку данных с созданную базу:
su - postgres -c 'pg_restore -v -F c -d mi ./mi.cdump' 2>&1 | tee ./mi.log
после завершения переноса потребуется инициализировать lpe (выполняется так же от имени postgres):
alter database mi set plv8.start_proc = '"lpe"."init"';
На целевом сервере присутствует БД mi:
На целевом сервере переименовываю базу mi (команды выполняются от имени postgres):
SELECT pg_terminate_backend(pgsa.pid) FROM pg_stat_activity as pgsa WHERE pgsa.datname = 'mi' AND pid <> pg_backend_pid(); alter database mi rename to mi_old;
На целевом сервере создаю пустую базу mi и выдаю права для пользователя bi (команды выполняются от имени postgres):
create database mi;
alter database mi owner to bi;
Выполняю заливку данных с созданную базу:
su - postgres -c 'pg_restore -v -F c -d mi ./mi.cdump' 2>&1 | tee ./mi.log
после завершения переноса потребуется инициализировать lpe (выполняется так же от имени postgres):
alter database mi set plv8.start_proc = '"lpe"."init"';