rake db:autoupgrade和rake db:automigrate之间的区别

时间:2013-09-14 05:21:38

标签: ruby-on-rails ruby-datamapper

我是Ruby on Rails和Datamapper的新手。有人可以告诉我datamapper中rake db:autoupgraderake db:automigrate之间的区别。因为在我的应用程序中,我使用了模型A和模型B,如下所示:

 class A
    includes DataMapper::resource
    property :id, Serial
    belongs_to :B, :required=>true
  end

  class B
    includes DataMapper::resource
    property :id, Serial
    has n, :As
  end

然后在执行:required => false时更改模型A中的rake db:autoupgrade后,数据库中的A表没有发生任何变化,但在执行rake db:automigrate时会出现以下错误:

 cannot delete or update a parent row: a foreign key constraint fails

1 个答案:

答案 0 :(得分:1)

如果有外键常量,则无法删除关联的表。你可以做的还有rake db:drop并再次创建表格。