2017-04-06 85 views
0

我正在使用PHP symfony框架進行數據庫遷移,並且我注意到有很多文件,並且當我構建項目時以及每次執行許多文件(遷移)時。很多數據庫遷移文件

管理遷移的最佳實踐是什麼?我可以刪除它們並只創建一個數據庫轉儲文件,用於數據庫啓動嗎?

+0

你應該爲你的開發數據庫使用燈具。 – COil

回答

0

我假設您使用Doctrine Migrations來創建這些文件。在dev上,您始終可以使用doctrine:schema:update命令重新生成數據庫。 設置新實例時,您還可以使用doctrine:schema:create命令,該命令還會爲您創建最新的表定義。

這給我們帶來了你的問題;你需要保留所有的遷移嗎?只要您知道遷移已在過時的實例上執行,您可以安全地歸檔(我的首選選項)或刪除它們,因爲它們將永遠不會再被調用。

+0

是的,我正在使用Doctrine遷移,並在部署到生產之前構建項目時運行它們。我不應該使用遷移來構建項目並更好地使用原則:schema:create? – Emptyhand

+0

沒有模式:創建僅用於開發目的,因爲它不考慮您的數據。使用migrations執行部署,爲dev/test創建。 –

0

我寧願使用生產上的遷移而不是教條:schema:update,因爲在更新過程中可能會遇到一些問題。海事組織總是更好的選擇,密切注意數據庫的情況。

在開發環境中,您可以輕鬆使用doctrine:schema:update命令,但是您應該在生產環境中使用遷移。在某些情況下,命令可能會阻止遷移(它發生在我身上的幾次)。

+0

好的,但是如果你有很多人,你如何管理你的遷移?另外你如何建立你的項目(如果你建立在CI/CD上)?你使用遷移或模式創建? – Emptyhand

+0

你必須做到這一點:)最好減少遷移次數(不是單獨爲每個新的字段),而是一次大的遷移。完成功能後,可以將多個遷移合併爲一個,然後再將其推送到主分支。 – kabanek