2009-04-30 52 views
23

有沒有簡單的方法在PostgreSQL 8.1中創建數據庫或模式的副本?PostgreSQL如何創建數據庫或模式的副本?

我正在測試一些軟件,它對數據庫中的特定模式做了很多更新,我想製作一份它的副本,以便我可以對原始文件進行一些比較。

回答

27

如果它位於同一臺服務器上,則只需使用帶有TEMPLATE參數的CREATE DATABASE命令。例如:

CREATE DATABASE newdb WITH TEMPLATE olddb; 
+8

這也複製數據到新的數據庫...任何相關的方法來做到沒有數據? – 2011-11-14 08:16:03

20

pg_dump--schema-only選項。

+4

將「7.4」替換爲「當前」,並且您有鏈接到最新版本。 – bortzmeyer 2009-05-03 18:36:28

+0

我剛剛做了這個 – artm 2013-03-05 09:49:35

0

這裏是鏈接到一些examples的備份和恢復。您可以使用備份來恢復到不同的服務器或任何其他服務器

8

如果必須將架構從本地數據庫複製到遠程數據庫,則可以使用以下兩個選項之一。

選項A

  1. 複製從本地數據庫到轉儲文件的架構。

    pg_dump -U postgres -Cs database > dump_file 
    
  2. 將轉儲文件從本地服務器複製到遠程服務器。

    scp [email protected]:dump_file [email protected]:dump_file 
    
  3. 連接到遠程服務器。

    ssh [email protected] 
    
  4. 將模式從轉儲文件複製到遠程數據庫。

    psql -U postgres database < dump_file 
    

選項B

複製直接從本地數據庫與遠程數據庫中的模式,而無需使用中間文件。

pg_dump -h localhost -U postgres -Cs database | psql -h remotehost -U postgres database 

,如果你想了解更多選項複製使用pg_dump數據庫這blog post可能被證明對你有幫助。

相關問題