Я пытаюсь восстановить базу данных Postgresql в AWS RDS.Я думаю, что я почти там.Я могу получить дамп и воссоздать базу данных локально, но мне не хватает последнего шага, чтобы восстановить его в AWS RDS.
Вот что я делаю:
- Я получаю свой дамп
$ pg_dump -h my_public dns -U myusername -f dump.sql myawsdb
Я создаю локальную базу данных в моей оболочке под названием test:
create database test;
Я положил дамп в свою тестовую базу данных
$ psql -U myusername -d test -f dump.sql
пока все хорошо.
I get an error: psql:dump.sql:2705: ERROR: role "rdsadmin" does not exist
, но я думаю, что могу проигнорировать это, потому что мой БД там со всем контентом.(Я проверил с помощью \ list и \ connect test).
Теперь я хочу восстановить этот дамп / тест в моем AWS RDS.
После этого https://gist.github.com/syafiqfaiz/5273cd41df6f08fdedeb96e12af70e3b Теперь я должен сделать:
pg_restore -h <host> -U <username> -c -d <database name> <filename to be restored>
Но каково мое имя файла и какое имя моей базы данных?
Я пробовал:
pg_restore -h mydns -U myusername -c -d myawsdbname test
pg_restore -h mydns -U myusername -c -d myawsdbname dump.sql
и еще пару опций, которые я не помню.
В большинстве случаев это говорит мне что-то вроде: pg_restore: [archiver] could not open input file "test.dump": No such file or directory
Или, для второго: input file appears to be a text format dump. Please use psql.
Может ли кто-то указать мне правильное направление?Помощь очень ценится!
РЕДАКТИРОВАТЬ: Таким образом, я создал файл .dump, используя $ pg_dump -Fc mydb > db.dump
Используя этот файл, я думаю, что он работаетТеперь я получаю ошибку [archiver (db)] could not execute query: ERROR: role "myuser" does not exist
Command was: ALTER TABLE public.users_user_user_permissions_id_seq OWNER TO micromegas;
Могу ли я это сделать?
EDIT2: я избавился от ошибки, добавив флаги - no-owner --role = mypguser --no-привилегии --no-owner