【问题标题】:DataMapper: using auto_migrate! with many-to-many dependencies?DataMapper:使用 auto_migrate!具有多对多依赖关系?
【发布时间】:2011-02-21 17:59:14
【问题描述】:

我正在尝试使用 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 - 它不会尝试重新创建表。

【问题讨论】:

    标签: ruby-on-rails postgresql datamapper ruby-on-rails-3


    【解决方案1】:

    我在导入外部数据和关系时遇到了类似的问题,有人建议我在开始插入数据之前尝试DataMapper.finalize.auto_migrate!。希望对你有帮助

    【讨论】:

      【解决方案2】:

      我遇到了完全相同的问题,但 auto_migrate 或 auto_upgrade 没有解决它。

      我创建了一个与多对多表的自动选择名称同名的模型,然后在不删除表的情况下删除了模型文件,我认为这在我进行迁移过程时造成了问题。

      手动删除交集表后,我能够继续进行所有迁移(向上/向下多次),数据没有问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-10
        • 2014-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        • 1970-01-01
        相关资源
        最近更新 更多