1
A
回答
1
據我所知,這是不可能與ActiveRecord,但如果你不介意改變ORM你可以看看DataMapper而不是。
使用DM,您可以在模型代碼本身中定義模型的'屬性'(屬性),然後只需運行rake db:automigrate即可更新數據庫的模式,例如,
class Blog
property :title, String
property :body, Text
property :user_id, Integer, :required => true
end
1
隨着Sequel可以
爲例(使用SQLite,但它同樣與其他適配器)
首先正常啓動:
require "sequel"
DB = Sequel.sqlite(DB_NAME)
# create an items table
DB.create_table :items do
primary_key :id
String :name
Float :price
end
# [....]
require "sequel"
DB = Sequel.sqlite('test.db')
# create an items table
DB.create_table :items do
primary_key :id
String :name
Float :price
end
之後,您可以修改表:
DB.add_column :items, :valid_from, Date
個
以下修改是可能的(或許還有更多):
- add_column
- add_index
- create_view
- drop_column
- drop_index
- drop_table
- drop_view
- rename_table
- rename_column
- set_column_default
- set_column_type
在結合rake
你可以這樣做:
require "rake"
require "sequel"
task :connect do
DB = Sequel.sqlite('test.db')
end
desc 'create an items table'
task :create_items => :connect do
DB.create_table :items do
primary_key :id
String :name
Float :price
end
end
task :add_dates_to_items => :connect do
#check if items exist is missing
DB.add_column :items, :valid_from, Date
end
注:遷移是一個幫助避免模式的錯誤序列修改。使用Migrations可以定義正確的順序。實際狀態已存儲,您可以降級。
相關問題
- 1. Rails新遷移不更新舊數據
- 2. 我們如何在Grails中遷移/更新數據庫模式?
- 3. Lift中的數據庫模式遷移
- 4. Rails 3 - 如何通過數據庫模式更新我的遷移
- 5. 用遷移文件更新數據庫
- 6. Ruby on Rails中的遷移是否更新到數據庫?
- 7. 使用Qt4進行數據庫遷移(模式更改)
- 8. Rails遷移以使用來自相關表的數據更新數據庫table_one
- 9. Rails數據庫遷移
- 10. Rails/Mongoid數據庫遷移
- 11. rails更新數據庫模式
- 12. 多數據庫模式遷移(php/mysql)
- 13. 在Azure中部署EF遷移時使用更新數據庫
- 14. 我可以只使用rails的遷移來維護數據庫模式嗎?
- 15. Rails - 更新數據庫中的模型
- 16. 在Rails遷移中遷移數據
- 17. 使用Git部署Azure上的數據庫模式遷移
- 18. 在不同數據庫模式下遷移數據
- 19. 遷移到新數據庫和模式的提示
- 20. 逐漸遷移到新的數據庫模式。 ¿建議?
- 21. 在應用更新中更新核心數據數據庫而無需遷移
- 22. 爲什麼這個簡單的Rails遷移不能更新我的數據庫?
- 23. 在更新Java EE應用程序時遷移數據庫模式
- 24. 如何更新與數據遷移sqlite3的模式
- 25. 如何啓用遷移以更新MVC4中的數據庫?
- 26. Ruby on Rails的數據庫遷移
- 27. Rails遷移後的數據庫重置
- 28. 類似Rails的數據庫遷移?
- 29. 複合數據庫更新/遷移不在mysql中工作
- 30. 更新表列而不重新設置數據庫遷移Laravel