【发布时间】:2016-06-16 20:22:29
【问题描述】:
我使用的是 Rails 4.2.3。如何创建将列添加到与表类型相同的表的迁移?此外,如何添加外键(如果列为 NULL 也可以)?我试过这个
class AddLinkedMyObjectToMyObjects < ActiveRecord::Migration
def change
add_reference :my_objects, :linked_my_object, type: :my_object, index: true, foreign_key: true
end
end
但我在运行迁移时遇到此错误
== 20160616201701 AddLinkedMyObjectToMyObjects: migrating =============================
-- add_reference(:my_objects, :linked_my_object, {:type=>:my_object, :index=>true, :foreign_key=>true})
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedObject: ERROR: type "my_object" does not exist
LINE 1: ALTER TABLE "MyObjects" ADD "linked_my_object_id" my_object
^
: ALTER TABLE "MyObjects" ADD "linked_my_object_id" my_object
/Users/davea/.rvm/gems/ruby-2.3.0@global/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:155:in `async_exec'
/Users/davea/.rvm/gems/ruby-2.3.0@global/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:155:in `block in execute'
/Users/davea/.rvm/gems/ruby-2.3.0@global/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log'
【问题讨论】:
标签: postgresql ruby-on-rails-4 foreign-keys migration