[英]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.