仅创建db模式的副本psql

时间:2015-09-22 11:09:24

标签: psql

我有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

我如何才能采用架构

1 个答案:

答案 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