這是一個新手問題。遷移(rake db:migrate)是否具有在開發過程中使用的某些功能,或者它是嚴格意義上的數據庫最新生產工具?Rails中的遷移工作如何?
1
A
回答
1
理想情況下,您希望僅在開發過程中使用遷移,然後加載模式並在生產中對數據庫進行種子處理。實際上,他們將允許您進行一些更改,然後部署到生產中,而不會造成任何損害。
遷移允許您在迭代中工作,即使在您的數據庫上也是如此。你不必擔心忘記添加一些東西。當你開始的時候,只要按照你認爲正確的方式創建表格,稍後你可以用另一個遷移來修復它。這基本上是這個想法。它帶走了一個db腳本統治他們所有的種事情。
一個小例子,如果你有一個用戶名和密碼的用戶模型,你需要添加一個電子郵件字段,只要做到這一點
rails generate migration AddEmailToUser # this is a convention, but you can name it however you want
class AddEmailToUser < ActiveRecord::Migration
def change
add_column :users, :email, :string
end
end
的change
方法是雙向的,當你申請遷移,還有當你需要恢復時。這是一個整潔的Rails 3.1魔術。
的老版本的遷移是這樣
class AddEmailToUser < ActiveRecord::Migration
def up
add_column :users, :email, :string
end
def down
remove_column :users, :email
end
end
一旦你添加的遷移,只需運行rake db:migrate
,一切都應該工作得很好。遷移的一大優勢是,如果你手動弄亂你的數據庫,你可以很容易地只是做
rake db:drop
rake db:create
rake db:migrate
或
rake db:migrate:reset # this might not work if you messed up your migrations
和你有數據庫的正確版本創建
0
遷移跟蹤數據庫模式的變化。所有更改(重命名列,更改表格,添加索引等)都應通過遷移完成。多虧了這一點,可以很容易地在多個生產服務器上部署更改。
相關問題
- 1. Rails的遷移繼承不工作
- 2. 如何寫SQL在遷移中的Rails
- 3. 如何測試Rails遷移?
- 4. Rails:遷移不起作用
- 5. Rails遷移不起作用
- 6. 在Rails遷移中遷移數據
- 7. SDN遷移到4.2:@Transactional如何工作?
- 8. Rails 3,遷移在本地工作,在Heroku中不起作用?
- 9. Rails的遷移回滾:如何刪除生成的遷移
- 10. 如何在Rails 3中遷移數據?
- 11. 如何遷移類似於Ruby on Rails遷移的Django模型?
- 12. 標記Rails遷移的遷移
- 13. Rails在PHP中的遷移
- 14. Rails中的聚合遷移
- 15. 在mongodb中,如何在rails上使用ruby「遷移」工具
- 16. Rails has_and_belongs_to_many遷移
- 17. rails HABTM遷移
- 18. Rails遷移表
- 19. Rails遷移
- 20. C++的Rails遷移
- 21. 遷移列 - Rails的
- 22. Rails的add_test_data遷移
- 23. Heroku Django遷移不工作
- 24. 工作流程遷移phalcon
- 25. TFS遷移時工作
- 26. Laravel遷移工作不
- 27. nhibernate +遷移工作流程
- 28. Rad 7.5.4工作區遷移?
- 29. 啓用遷移不工作
- 30. Rails 3.0的遷移link_to:remote => true Ajax + JQuery的ujs不工作
我無法掌握它。不知何故,我使用它是錯誤的,因爲當我添加更多列時,它不斷告訴我表中已經存在一些列。你能指引我到哪裏我可以閱讀如何使用遷移? – Roman
@Am。看看導軌http://guides.rubyonrails.org/migrations.html –