【发布时间】:2015-10-07 17:36:37
【问题描述】:
我正在尝试运行迁移以删除数据库中的两行。这是迁移文件...
class RemoveMenuItem < ActiveRecord::Migration
def up
MenuItem.delete(name: "Validation Settings")
MenuItem.delete(name: "Identifier Lookup")
end
def down
MenuItem.create(name: "Validation Settings", type: "MenuItem", actionable_item_id: 89, actionable_items_count: 0, sequence: 20)
MenuItem.create(name: "Identifier Lookup", type: "MenuItem", actionable_item_id: 89, actionable_items_count: 0, sequence: 30)
end
end
...但我收到此错误...
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "id"
LINE 1: ...ERE "actionable_items"."type" IN ('MenuItem') AND "id"."name...
^
: DELETE FROM "actionable_items" WHERE "actionable_items"."type" IN ('MenuItem') AND "id"."name" = 'Validation Settings'/Users/kweihe/.rvm/gems/ruby-2.1.6/gems/activerecord-3.2.22/lib/active_record/connection_adapters/postgresql_adapter.rb:1163:in `async_exec'
【问题讨论】:
-
迁移不是用来修改数据库架构的吗?你实际上是在处理数据库数据。为此,我认为您应该使用架构文件!
标签: ruby-on-rails ruby-on-rails-3 migration delete-row migrate