我只是坐下來想出我想要的所有指標。我已經有7個模型,我意識到我想在數據庫中添加14個索引。生成大型遷移有什麼問題嗎?
這是我第一次真正的Rails項目,以及我在指南中所做的遷移僅針對一種模型。我還沒有看到任何指南對這種或那種方式進行明確評論 - 是否爲每種型號進行一次遷移被認爲是最佳做法?或者限制遷移的規模和複雜性?
我只是坐下來想出我想要的所有指標。我已經有7個模型,我意識到我想在數據庫中添加14個索引。生成大型遷移有什麼問題嗎?
這是我第一次真正的Rails項目,以及我在指南中所做的遷移僅針對一種模型。我還沒有看到任何指南對這種或那種方式進行明確評論 - 是否爲每種型號進行一次遷移被認爲是最佳做法?或者限制遷移的規模和複雜性?
遷移大小並不重要。當您的開發全部完成時,您將使用
rake:db:schema:dump
RAILS_ENV=production rake db:schema:load
它會將所有內容放入一個簡潔文件中,該文件將用於重新創建生產數據庫。
一般來說,我使我的遷移目的驅動。它可以,如果他們很大,但大多數時候你希望他們很小。把它們想象成功能 - 小時易於理解。如果遷移過程中出現問題,較小的遷移也可以更輕鬆地解決問題。
謝謝你的回答!這是我正在考慮的折衷。我的migrations文件夾變得越來越長了,我用這些東西在這裏和那裏添加了一些小拼湊件,因此我認爲我會先嚐試製作一個大的文件夾。如果我在使用rake數據庫時遇到問題,我可以將其打開並分解:migrate – 2011-03-10 02:06:51
對於大多數人來說,這可能是一個小問題,對一些人來說這是一個大問題。
我只是在一個項目上打掃房子。我有一個未使用的模型。我愉快地執行了:
rails destroy scaffold LouseyModel
......腳手架被移除。這也刪除了原始的遷移文件。我想如果你是一個保持一個動作==一個遷移文件的人,那麼這是沒有問題的,也是清理你的開發混亂的好方法。如果您喜歡手動編輯您的遷移並將多個東西添加到單個遷移文件中,那麼這可能會引入不想要的行爲,而db:setup和其他一些依賴於順序遷移來執行它們的db rake任務。
這是一個有效的觀點,是一個需要注意的副作用。在我的Rails開發的這一點上,我學會了非常虔誠地使用Git。當然,恢復遷移會給你留下一個仍然有LouseyModel名字的人,但這是一個很小的問題。這可能是由於你的原因,建議人們使用'rake db:schema:load'將數據庫加載到生產機器上。 – 2011-10-03 20:18:35
是的,是的。如果我沒有被介紹給git,我認爲我從來沒有用過Rails。 – 2011-10-04 10:40:10
感謝您的大圖! – 2011-03-10 02:03:02
沒問題=)樂於幫助 – Elxx 2011-03-12 01:39:13