2015-09-22 69 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