我們與Phing的dbdeploy task一起工作來做我們的PostgreSQL數據庫的version control,這總是一種很好的工作方式。在我們開始使用它之後,我並沒有真正遇到數據庫版本的問題,除了一個嘮叨的疑問:我們如何控制數據庫包含的數據?在使用dbdeploy部署數據庫時控制數據
現在,我通常會有一個包含一些示例數據的增量,用於測試,但在生產環境中,我希望生產數據(如實際有效數據)。當然,我可以編寫另一個截斷測試數據並插入實際數據的增量,但不知何故,這種增量會感覺笨重和繁瑣,因爲增量中唯一的語言是SQL。編寫這樣一個三角洲時,處理順序和確保外鍵關係是正確的,這是一個真正的痛苦。
所以我認爲編寫一個PHP腳本可以導入來自CSV文件的數據。這實際上會起作用,直到有另一個數據庫更改重命名列,這會導致PHP文件無用。當然,通過更新腳本來合併數據庫更改並重新運行腳本,可以很容易地解決這個問題,但這很容易出錯,這就是我首先使用dbdeploy的原因。
所以,我的問題是;在部署更改時如何處理數據,或者更準確地說:如何在生產環境中插入數據?
不應該將生產中的數據通過某種管理界面插入到乾淨的數據庫中嗎?我認爲DBDeploy的想法是使數據庫保持最新狀態,而不必刪除任何生產數據。爲了測試,最好使用一些獨立的燈具管理,而不是將測試數據保存在增量中。 Phpunit或一些PHP框架可用夾具管理。 – poisson
你可能是對的。雖然我不認爲整個管理界面是一個好主意,我不太喜歡那樣,因爲它是密集的。但不保留三角洲的測試數據可能是一個好主意。發佈它作爲答案,我會接受它。 –
對不起,但我並沒有完全理解問題陳述。有一些YouTube視頻嗎?請任何鏈接 –