【发布时间】:2020-07-15 17:52:02
【问题描述】:
我想删除activities 表中的列和索引。为此,我有以下迁移:
class RemoveUnnecessaryJourneyActivitiesRelations < ActiveRecord::Migration[6.0]
def change
remove_index :activities, :cms_journey_id
remove_column :activities, :cms_journey_id, :bigint
end
end
当我运行 rake db:migrate 时,它也会删除此列和索引,但是当我想通过 rake db:drop db:create db:migrate db:seed 或 bin/rails db:setup 重置我的数据库时,我收到了一个错误:
rake aborted!
ActiveModel::UnknownAttributeError: unknown attribute 'cms_journey_id' for Activity.
【问题讨论】:
-
这个错误在哪里?能给点代码吗?
-
就像我写的 - 当我运行
rake db:drop db:create db:migrate db:seed或bin/rails db:setup -
是的,但是您的例外来自哪里?你没有堆栈跟踪吗?试试
rake db:drop db:create db:migrate db:seed or bin/rails db:setup --trace -
我的假设是您的代码中仍然有对
cms_journey_id的引用。运行迁移会触发此代码,这会导致错误,因为您不再拥有该列。我试图用堆栈跟踪做的是检查我的假设是否正确。但也许您可以在代码中搜索cms_journey_id并删除任何潜在的剩余引用? -
不,我搜索过,我的代码中没有对本专栏的任何引用
标签: ruby-on-rails