数据库重置后的Rails迁移

时间:2011-12-16 00:48:49

标签: ruby-on-rails database migration rails-activerecord rails-migrations

您好我有一般迁移问题:

当我创建这样的迁移时:

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重置数据库的迁移?

谢谢!

2 个答案:

答案 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)

您是否曾在手动运行后手动更改数据库状态和/或修改迁移?如果是这样,你搞砸了迁移的状态。

您可以通过添加迁移来缓解这种情况,迁移可以使您的数据库在新迁移期望的位置,或者您可以修复以前更改过的迁移。

根据您拥有的其他开发人员数量,在这种情况下我会选择后者。