2
Rails的風格指南says替代在Rails遷移模型類
遷移中不要使用模型類。由於所用模型的變化,模型類不斷髮展,並且在未來的某個時刻,曾經工作的遷移可能會停止。
如何改變數據與遷移(一個練習一些批評,但正在使用的項目,我正在工作),同時記住這個建議?
Rails的風格指南says替代在Rails遷移模型類
遷移中不要使用模型類。由於所用模型的變化,模型類不斷髮展,並且在未來的某個時刻,曾經工作的遷移可能會停止。
如何改變數據與遷移(一個練習一些批評,但正在使用的項目,我正在工作),同時記住這個建議?
您可以在不遵循實際建議的情況下解決問題。我做我的遷移使用模型類,但我用一對夫婦的戰略,以防止從打破我在遷移模式的變化:
我週期性地更新我的架構爲DB/schema.rb的完全遷移和複製刪除我的遷移。當然,只有在所有需要運行的環境都運行完所有遷移之後,才能做到這一點。新的數據庫將被創建已經遷移,這是更快,並消除遷移和當前模型代碼之間的不兼容性。
當我需要在相同的遷移運行中立即使用早期遷移中更改的模式時,我將使用Model.reset_column_information
重新加載模型定義。
或者你也可以採取這個建議,只是使用execute
在遷移過程的執行SQL。如果我可以避免這種情況,我不這樣做,因爲使用模型方法通常較少費力。
@DaveSchweisguth它不壞,但不覺得它解釋了一切。 –
嗯。我認爲這些都是我的主要模特類痛點。如果我再想一想,我會添加到答案。 –