Я зробив резервне копіювання бази даних на іншому сервері, і ця роль має іншу роль, ніж мені потрібно, за допомогою цієї команди:
pg_dump -Fc db_name -f db_name.dump
Потім я скопіював резервну копію на інший сервер, де мені потрібно відновити базу даних, але немає такого власника, який би використовувався для цієї бази даних. Скажімо, у бази даних є власник owner1
, але на іншому сервері у мене є тільки, owner2
і мені потрібно відновити цю базу даних і змінити власника.
Що я робив на іншому сервері під час відновлення:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Але при запуску відновлення я отримую такі помилки:
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
Як я можу вказати це, щоб воно змінило власника? Або це неможливо?
--no-owner
як пропонується у прийнятій відповіді, вам може знадобитися--no-privileges
. Дивіться цю відповідь