Я пытаюсь экспортировать данные из экземпляра Google Cloud SQL (PostgreSQL), чтобы импортировать их в обычную базу данных Postgres, используя pg_dump
и pg_restore
:
pg_dump -h sql_proxy -F t --no-owner --no-acl > backup.tar
pg_restore backup.tar -c
Однако при запуске pg_restore
я получаю следующие ошибки:
pg_restore: [archiver (db)] Ошибка при обработке C: pg_restore: [archiver (db)] Ошибка от TO C запись 197; 1259 17010 ТАБЛИЦА xxx postgres pg_restore: [archiver (db)] не удалось выполнить запрос: ОШИБКА: роль "postgres" не существует Команда была: ALTER TABLE publi c .xxx ВЛАДЕЛЕЦ postgres;
pg_restore: [archiver (db)] Ошибка от TO C запись 198; 1259 17017 ТАБЛИЦА xxy postgres pg_restore: [archiver (db)] не удалось выполнить запрос: ОШИБКА: роль "postgres" не существует Команда была: ALTER TABLE publi c .xxy ВЛАДЕЛЕЦ postgres;
...
Я попробовал несколько вариантов флагов, но безуспешно. Я нашел много статей о том, как выполнить миграцию наоборот (с PostgreSQL на Google Cloud SQL для PostgreSQL), а в Документах Google Cloud только описывается, как экспортировать данные для импорта в Облако SQL DB снова.
Буду признателен за любую помощь в том, как избежать описанных выше ошибок и как перенести БД с минимальными изменениями.