2015-09-22 31 views
0

我有db命名为“mydb”。现在,我如何创建一个新的数据库名称为“mydb_test”与“mydb的”只创建数据库架构的副本psql

尝试下面的链接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
  • 您可能没有所需的架构的数据创建一个新的转储,然后从它恢复到一个新的DB:

    # 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