Ich verwende Rails 4.2.3. Wie erstelle ich eine Migration, die eine Spalte zu einer Tabelle hinzufügt, die denselben Typ wie die Tabelle hat? Wie füge ich einen Fremdschlüssel hinzu (es ist in Ordnung, wenn die Spalte NULL ist)? Ich habe versucht, dieseIn Rails, wie erstelle ich eine Migration, die eine Spalte/einen Fremdschlüssel zu einer Tabelle hinzufügt, die vom gleichen Typ wie diese Tabelle ist?
class AddLinkedMyObjectToMyObjects < ActiveRecord::Migration
def change
add_reference :my_objects, :linked_my_object, type: :my_object, index: true, foreign_key: true
end
end
aber ich habe diesen Fehler bei der Ausführung der Migration
== 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/[email protected]/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:155:in `async_exec'
/Users/davea/.rvm/gems/[email protected]/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:155:in `block in execute'
/Users/davea/.rvm/gems/[email protected]/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract_adapter.rb:472:in `block in log'