【发布时间】:2018-08-24 00:11:31
【问题描述】:
将我的 Rails 4.2 应用程序迁移到 Rails 5 后,当我尝试从新数据库迁移时,出现以下错误
表“目标”没有 development_plan 的外键
以下是重要的迁移:
-
使用 add_reference 创建外键
class AddDevelopmentPlanToObjectives < ActiveRecord::Migration def change add_reference :objectives, :development_plan, index: true, foreign_key: true end end -
删除外键(产生错误)
class DropDevelopmentPlans < ActiveRecord::Migration def change Objective.all.each do |objective| company = objective.owner.company company.cycles.create name: '4Q 2015', begin_at: Date.today, end_at: 1.year.from_now, current: true unless company.current_cycle company.reload objective.update cycle: company.current_cycle end remove_foreign_key :objectives, :development_plan remove_reference :objectives, :development_plan, index: true drop_table :development_plans end end
remove_foreign_key :objectives, :development_plan
上的迁移中断
有人遇到过这个问题吗?这也发生在其他类似的迁移中......
【问题讨论】:
-
所以你的迁移添加了外键,然后一个后期删除它?
-
没关系,我刚刚意识到第一个是
Add,第二个是Drop。
标签: ruby-on-rails ruby-on-rails-4