0

In meiner Rails-Anwendung habe ich mehrere Postgresql-Schemas.Rails Postgres Schema Referenzen Rollback-Problem

SHOW search_path; 

search_path 
-------------- 
"$user",public,vehicle 

Ich habe zwei Tabellen (Händler, Inventare) im Fahrzeugschema. Die Beziehung hält wie folgt aus:

dealer has_many inventories 
inventory belongs_to dealer 

ich eine Migration geschaffen, um die Beziehung hinzufügen, wie:

class AddDealerIdToVehicleInventories < ActiveRecord::Migration 
    def change 
    add_reference 'vehicle.inventories', :dealer, index: true, foreign_key: {on_delete: :cascade} 
    end 
end 

Diese Migration perfekt funktioniert, wenn ich laufen: rake db:migrate scheint die foreign_key ohne Ausgabe der Tabelle hinzugefügt . Aber wenn ich rake db:rollback laufen, erhalte ich diese Fehlermeldung:

StandardError: An error has occurred, this and all later migrations canceled: 

PG::UndefinedColumn: ERROR: column "vehicle.dealer_id" referenced in foreign key constraint does not exist 
: ALTER TABLE "vehicle"."inventories" ADD CONSTRAINT "fk_rails_95ee16593d" 
FOREIGN KEY ("vehicle.dealer_id") 
    REFERENCES "vehicle"."dealers" ("id") 
ON DELETE CASCADE 

Ich bin nicht sicher, ob ich irgendwelche Fehler mache oder die Schienen Migration Fehler. Danke für die Hilfe.

Antwort

0

löste ich das Problem durch Änderungen in der Migrationsdatei wie machen:

class AddDealerIdToVehicleInventories < ActiveRecord::Migration 
    def up 
    add_reference 'vehicle.inventories', :dealer, index: true, foreign_key: {on_delete: :cascade} 
    end 

    def down 
    execute <<-SQL 
     ALTER TABLE vehicle.inventories 
     DROP COLUMN dealer_id 
    SQL 
    end 
end 

Hope, das auch für andere nützlich ist.