我是Ruby on Rails和Datamapper的新手。有人可以告诉我datamapper中rake db:autoupgrade
和rake 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
答案 0 :(得分:1)
如果有外键常量,则无法删除关联的表。你可以做的还有rake db:drop
并再次创建表格。