Ruby on rails 3 rails3.1中的数据库迁移

Ruby on rails 3 rails3.1中的数据库迁移,ruby-on-rails-3,migration,ruby-on-rails-3.1,Ruby On Rails 3,Migration,Ruby On Rails 3.1,最近我问了一个关于rails3.1迁移的问题。下面是迁移文件代码之一 def change create_table :books do |t| t.string :title t.decimal :price end end 现在我需要添加一个外键,比如comment_id,我用来创建另一个迁移,并在其中使用add_column方法来完成迁移 但是因为我们在rail3.1中,所以我认为可能有一种新的方法来实现它。所以我修改了代码 def change create

最近我问了一个关于rails3.1迁移的问题。下面是迁移文件代码之一

def change
  create_table :books do |t|
    t.string :title
    t.decimal :price
  end
end
现在我需要添加一个外键,比如comment_id,我用来创建另一个迁移,并在其中使用add_column方法来完成迁移

但是因为我们在rail3.1中,所以我认为可能有一种新的方法来实现它。所以我修改了代码

def change
  create_table :books do |t|
    t.string :title
    t.decimal :price
    t.references :comment
  end
end

好的,现在我运行rakedb:migrate,但什么也没发生。有什么想法吗?

在运行
rake db:migrate
之前,您是否运行了
rake db:rollback
?在使用更改重新应用迁移之前,您需要回滚迁移。

还要确保在运行db:rollback时删除
t。references:comment
是否会将db:rollback删除数据库中以前存在的数据?如果您没有,可能是的,然后,您需要创建一个新的迁移
rails generate migration AddReferencesToBooks comment:references
,而不是更改现有的迁移。是的,看起来我们仍然需要旧方法