我正在尝试使用 Rails3-pre 和最新的 DataMapper 将我的应用程序从 MySql 迁移到 Postgresql。
我有几个模型,它们使用 :through => Resource 通过多对多关系关联,这意味着 DataMapper 为这两个模型创建了一个带有外键的连接表。我不能自动迁移!这些变化,因为我不断得到这个:
ERROR: cannot drop table users because other objects depend on it
DETAIL: constraint artist_users_owner_fk on table artist_users depends on table users
constraint site_users_owner_fk on table site_users depends on table users
HINT: Use DROP ... CASCADE to drop the dependent objects too.
我已经尝试了所有我能想到的东西,并且认为当我添加 :constraint => :skip 到字段定义时我的工作正常,但是当我尝试运行 auto_migrate 时,我不断收到该错误。我认为 :skip 意味着它会忽略家属,但也许这只适用于删除行而不是删除表?
我应该提一下,在我对数据库进行一次核对之后,我可以运行 auto_migrate,但在那之后,就会出现错误。
任何建议或意见都非常感谢。
编辑:datamapper irc 上的 Gibheer 建议改用 auto_upgrade - 它不会尝试重新创建表。