我有一小部分数据库作为转储进行集成测试。我使用此命令恢复它:
pg_restore --no-acl --no-owner --verbose --create -h localhost -p 5435 -j 4 -U $PG_USER -d test latest.dump
问题是我在日志中看到:
pg_restore: connecting to database for restore
pg_restore: processing item 5308 ENCODING ENCODING
pg_restore: processing item 5309 STDSTRINGS STDSTRINGS
pg_restore: processing item 5310 DATABASE dlq8aimf0q2pf
pg_restore: creating DATABASE dlq8aimf0q2pf
pg_restore: connecting to new database "dlq8aimf0q2pf"
pg_restore: connecting to database "dlq8aimf0q2pf" as user "postgres"
你可以看到它试图创建" dlq8aimf0q2pf"不是"测试"正如我所说。 我能获得数据库名称吗? ENV var使用这个名字是什么?
答案 0 :(得分:0)
正如pg_restore doc中关于--create
选项所述:
使用此选项时,使用-d命名的数据库仅用于发出 初始DROP DATABASE和CREATE DATABASE命令。 所有数据都会恢复到 存档中显示的数据库名称。
如果您有现有数据库test
并希望还原到该数据库,请不要使用--create
。