我正在考慮在下一個項目中使用Ruby on Rails。瞭解部署一個rails網站很容易理解(聽起來像我將使用Phusion Passenger)Gerrit的Ruby on Rails數據庫部署
但現在我想弄清楚數據庫。我看到很多關於「數據庫遷移」的信息,它們允許我使用紅寶石代碼來更新數據庫。我還看到,我可以同時創建和和以下這些遷移的變體。
但是,我只能看到這是如何在一個方向乾淨地工作。試想一下,如果我突然說「顏色列不能爲空」。因此,和將使它成爲必需,並將所有NULL條目設置爲默認值。但下降會做什麼?如果你關心它和它的啓動方式相同,你不能只將默認值設置爲NULL。
這對發佈到生產並不重要。這可能只是在一個方向完成(在向上方向)。 但是,我想使用Gerrit進行代碼評論,並且在允許簽入前設置一個機器人來運行構建...
那麼這怎麼可能?從一個代碼審查到下一個代碼審查,構建服務器將檢出新的一組代碼,並運行遷移?但是,如果發生這種情況,它甚至不會保留之前的遷移代碼,那麼它如何運行下降步驟?作爲一個更簡單的例子,我沒有看到如何檢查舊版本的代碼和向後「db遷移」。
接受的答覆。我仍然不確定我將使用什麼確切的策略,因爲我希望構建以某種方式測試遷移。我可能會在構建之前創建一個數據庫快照,然後讓這些遷移在其上運行。 –