有时我需要创建一个名为DB_DEV
的数据库,它是与现有DB
完全相同的副本(相同的方案和数据)。标识DB_DEV
已经存在,我只想删除它并重新创建它。
我使用了这个命令:
"pg_dump --clean -U user db | psql db_dev"
似乎有效,但我意识到它不会删除db
中不存在的表。
因此,如果我运行此命令,然后在"table"
中创建一个表DEV_DB
并再次运行该命令,"table"
仍然存在于DEV_DB
数据库中,尽管在{ {1}}不是。
您知道如何修改命令以使其正常工作吗?
答案 0 :(得分:0)
您可以在恢复转储之前删除并重新创建数据库:
psql postgres -c 'drop database db_dev; create database db_dev;'
pg_dump --clean -U user db | psql db_dev
或者:
dropdb db_dev
createdb db_dev
pg_dump --clean -U user db | psql db_dev