我有db命名" mydb"。现在我如何创建一个名为" mydb_test"的新数据库?仅使用" mydb"
的模式尝试了以下链接PostgreSQL how to create a copy of a database or schema?
正如那里所提到的,我尝试了以下命令,
createdb -T olddb newdb
此副本包括数据到newdb
如果我尝试上面链接中提到的第二个选项,我会收到以下错误,
# pg_dump -Cs -U postgres my_test_db > dump_schema_file
# psql -U postgres naggappan_my_test_db < dump_schema_file
psql: FATAL: database "naggappan_my_test_db" does not exist
我如何才能采用架构
答案 0 :(得分:0)
您可以创建没有所需架构数据的新转储,然后从中恢复到新数据库中:
# pg_dump --dbname=source_db_name --username=postgres --encoding=UTF8 --schema=db_schema --schema-only --file=path_to_filename.dump
# psql --dbname=target_db_name --username=postgres --file=path_to_filename.dump
如果您的现有转储包含二进制格式的架构和/或数据,则只能使用pg_restore
从其中恢复架构:
# pg_restore --dbname=target_db_name --username=postgres --schema-only path_to_filename.dump