簡體   English   中英

在Postgres 9.3中創建一個與生產相同的表結構的開發數據庫

[英]Create a dev database with same table structure as production in Postgres 9.3

我想為我的Web應用程序創建一個“開發”數據庫。

我正在使用Postgres 9.3,我希望'devdb'擁有確切的表結構作為我的生產'appdb'。 我不希望他們共享數據,但我希望devdb接收對表結構所做的任何更改,如果可能的話。 (即如果我在appdb中添加一個新表,我希望devdb也有新表,如果我刪除一個列也一樣)

我是否需要使用模式,如果是這樣,怎么做? 我的appdb目前有一個公共模式。

謝謝!

我認為你最好的選擇是使用:

pg_dump --schema-only prod | psql dev

要使模式保持同步,請刪除並重新加載dev db,或者對模式更改進行編寫腳本,以便將更改應用於兩個DB。 無論如何,您應該這樣做,在將它們應用於生產之前測試開發中的更改。

(像Liquibase這樣的工具對此很有意思)。

嘗試直接鏈接DDL定義是不安全的。 它們創建了從生產到開發的依賴。 那是冒險的。

例如,如果您要使用基於表繼承的方法,那么在dev表上持有鎖的長時間運行的事務可能會導致生產延遲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM