2011-03-10 35 views
0

我只是坐下來想出我想要的所有指標。我已經有7個模型,我意識到我想在數據庫中添加14個索引。生成大型遷移有什麼問題嗎?

這是我第一次真正的Rails項目,以及我在指南中所做的遷移僅針對一種模型。我還沒有看到任何指南對這種或那種方式進行明確評論 - 是否爲每種型號進行一次遷移被認爲是最佳做法?或者限制遷移的規模和複雜性?

回答

1

遷移大小並不重要。當您的開發全部完成時,您將使用

rake:db:schema:dump 
RAILS_ENV=production rake db:schema:load 

它會將所有內容放入一個簡潔文件中,該文件將用於重新創建生產數據庫。

+0

感謝您的大圖! – 2011-03-10 02:03:02

+0

沒問題=)樂於幫助 – Elxx 2011-03-12 01:39:13

1

一般來說,我使我的遷移目的驅動。它可以,如果他們很大,但大多數時候你希望他們很小。把它們想象成功能 - 小時易於理解。如果遷移過程中出現問題,較小的遷移也可以更輕鬆地解決問題。

+0

謝謝你的回答!這是我正在考慮的折衷。我的migrations文件夾變得越來越長了,我用這些東西在這裏和那裏添加了一些小拼湊件,因此我認爲我會先嚐試製作一個大的文件夾。如果我在使用rake數據庫時遇到問題,我可以將其打開並分解:migrate – 2011-03-10 02:06:51

1

對於大多數人來說,這可能是一個小問題,對一些人來說這是一個大問題。

我只是在一個項目上打掃房子。我有一個未使用的模型。我愉快地執行了:

rails destroy scaffold LouseyModel 

......腳手架被移除。這也刪除了原始的遷移文件。我想如果你是一個保持一個動作==一個遷移文件的人,那麼這是沒有問題的,也是清理你的開發混亂的好方法。如果您喜歡手動編輯您的遷移並將多個東西添加到單個遷移文件中,那麼這可能會引入不想要的行爲,而db:setup和其他一些依賴於順序遷移來執行它們的db rake任務。

+1

這是一個有效的觀點,是一個需要注意的副作用。在我的Rails開發的這一點上,我學會了非常虔誠地使用Git。當然,恢復遷移會給你留下一個仍然有LouseyModel名字的人,但這是一個很小的問題。這可能是由於你的原因,建議人們使用'rake db:schema:load'將數據庫加載到生產機器上。 – 2011-10-03 20:18:35

+0

是的,是的。如果我沒有被介紹給git,我認爲我從來沒有用過Rails。 – 2011-10-04 10:40:10