簡體   English   中英

如何使兩個開發數據庫與Doctrine保持同步?

[英]How to keep two development databases in sync with Doctrine?

(如有需要,請使用此CW)我們是兩個基於Web應用程序(PHP5,ZF,Doctrine,MySQL5)的開發人員。 我們正在使用本地Web服務器和本地數據庫。 數據庫架構在YAML文件中定義。

使數據庫架構保持同步的最佳方法是什么?

我們的操作方法如下:開發人員“ A”進行更改時,都會生成一個遷移類。 然后,他提交遷移文件開發人員“ B”執行遷移類。

但是,在每個數據庫更改上創建遷移類都是一個相當繁瑣的過程。

您有更好的解決方案嗎?

我不知道您如何在使用教義的Zend框架中進行操作。 這就是我在Symfony中使用Propel的方式。 盡管確切的過程可能有所不同,但是基本概念是相同的。

我在DAL上進行了單元測試。

每當架構更改時,我們都會檢入yml和生成的ORM代碼(您確實具有源代碼控制,不是嗎)。 我將簽到設置為自動模式,這意味着我將立即獲得所有簽到。

如果架構更改不影響我的事情,那么我將忽略這些更改。 但是,如果架構更改破壞了我的工作,那么我將使用symfony propel build命令來重建表單,ORM類以及其他內容。 重建那些基礎設施只是一個命令行事情,所以對我來說沒有問題。

最后,在重建之后,我將運行我的單元測試,以確保一切正常。 如果沒有,我最好將它們修復!

我看到這個問題已經得到了回答,但是Doctrine可以為您遷移數據庫而不必花很多時間。 我們將這種模式用於每一個開發人員更改其本地Yaml文件,在本地生成新模型,使用Doctrine創建遷移,在本地運行該遷移以更改數據庫,然后檢入新yaml文件和遷移的模式更改。 然后其他開發人員簽出更改后的yaml文件和遷移,然后他們生成新模型並運行遷移以同步其數據庫。 將代碼部署到我們的質量保證和生產環境幾乎是相同的過程。

有關教義遷移的更多信息,請訪問教義網站

暫無
暫無

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

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