2009-07-06 139 views
0

有人告訴我,出於某種原因,使用rails時無法更新數據庫模式。您可以刪除一個表,然後使用更新後的模式重新創建表,但如果您已經在要更新的表中存儲了內容,則這不起作用。rails更新數據庫模式

你有什麼建議?

謝謝!

回答

10

你被告知不正確。您可以在使用Rails時更新數據庫模式。

你這樣做的方式是通過「遷移」。

一種常見模式是編寫一組構建初始模式的遷移。隨着您的應用程序的不斷髮展,您可以編寫其他遷移工具,以更改表格和列以適應不斷髮展的設計。如果應用程序在生產中,則將這些新遷移應用到生產模式。

當然,一些更改會混淆您現有的數據,但這與Rails無關。不管你使用什麼編程語言/框架,情況都是如此。

如果您有一個傳統數據庫架構並且沒有使用遷移,您仍然可以通過直接與數據庫服務器交互來更新您的架構。再次,什麼會起作用,什麼不會在這種情況下與Rails無關。這完全取決於架構和數據本身的結構。

+0

謝謝,Ethan。 :) – Jess 2009-07-06 19:09:40

0

如果您在其中的內容中刪除表格,內容將被銷燬。但是,您可以將內容遷移包括在數據庫模式遷移中,以便在架構更新後將其遷移回表中。

+1

請爲所有好的愛,避免使用遷移將數據放入數據庫。使用rake任務。 – 2009-07-06 23:36:26