2014-01-05 26 views
3

我使用laravel框架,但實際上並不重要。 問題是爲什麼我應該使用數據庫遷移以及在開發應用程序時如何正確使用數據庫。使用數據庫遷移vs工作臺

例如,我正在構建一個大型網絡應用程序,最終將有30多個表格。一開始我根本沒有數據庫,我只是開始構建它。這似乎不是一個好辦法做這樣的遷移: 1.添加用戶表 2.添加regdate字段到用戶表 3.添加用戶權利表 4.忘記添加外鍵contstrains給用戶和權限表(鏈接標識) 5.添加照片表...

首先,第一步我會在mysql工作臺等工具中一次製作大部分表格。說,15桌。我會在laravel中稱之爲「數據庫初始化」遷移嗎?

然後,如果我需要同步我的更改,我會使用工作臺來完成,因爲它具有此功能,所以不會有任何人爲錯誤。如果我和一個團隊一起工作,我可以在某處共享工作臺模型,將其保留刪除(不確定是否可以加載遠程模型,我不是工作臺專業人員,但無論如何,如果我改變了某些東西,我可以上傳更改)。

,我不能回滾唯一的缺點,但 1.不知道如果我真的需要這個功能,平時我還記得我的變化,我可以刪除它們,再通過工作臺 2.同步我可以節省很多的工作臺文件laravel做同樣的遷移系統,如

但我喜歡的是,我可以一次看到所有數據庫的所有關係,我可以很容易地進行管理(無需編寫代碼)

回答

1

你不需要爲您在開發過程中所做的每項更改創建新的遷移。您可以使用php artisan migrate:refresh並繼續更改現有的遷移文件。

我親自做,直到該網站是兩種:

  1. 數據庫「設計」是完整的
  2. 有人在我的球隊還需要數據庫的副本

只有當存在分叉的可能性(例如多個程序員在應用程序上工作)是否需要創建多個遷移。

認爲它有點像版本控制。在開發的早期階段,你可能不會每次做一些細微的改變就創建一個提交,但是當你在開發過程中需要分叉一些代碼時,你會提交/推送。