您好我有一般迁移问题:
当我创建这样的迁移时:
class RenameColumn < ActiveRecord::Migration
def change
rename_column :users, :hotel_stars, :rating_stars
rename_column :users, :restaurant_stars, :price_stars
end
end
并相应地更改Model-,View-和Controller文件中的代码(我不创建新的Model等):
即。
Model: attr_accessible :rating_stars, :price_stars
(而不是:hotel_stars,:restaurant_stars)
Controller: @rating = current_user.rating_stars
当我现在运行迁移(rake db:migrate) - &gt;有用! 但是在rake db:drop之后,rake db:create,rake db:migrate它不再了!
此迁移有什么问题?如何创建使用WITH WITH WITHOUT重置数据库的迁移?
谢谢!
答案 0 :(得分:0)
我认为您的问题是rake db:create不会从schema.rb重建您的数据库。为此你需要做rake db:setup而不是rake db:create。在任何情况下,我都会尝试使用rake db:reset而不是drop / create,因为我相信它会在一步完成你想要做的事情。
输入rake -T以获取可用任务列表及其功能。
另请参阅此处以获取有关rails迁移的更多信息: http://guides.rubyonrails.org/migrations.html
答案 1 :(得分:0)
您是否曾在手动运行后手动更改数据库状态和/或修改迁移?如果是这样,你搞砸了迁移的状态。
您可以通过添加迁移来缓解这种情况,迁移可以使您的数据库在新迁移期望的位置,或者您可以修复以前更改过的迁移。
根据您拥有的其他开发人员数量,在这种情况下我会选择后者。