我的问题:今天从SQLITE3迁移到我的Rails应用程序上的POSTRESQL 9.4。我查看了StackOverflow,并按照此处的说明进行操作:http://sevenseacat.net/2015/02/24/add_foreign_key_gotchas.html
似乎无法弄清楚这一点。错误是:
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation "birds" does not exist
: ALTER TABLE "appointments" ADD CONSTRAINT "fk_rails_5464f9f71b"
FOREIGN KEY ("bird_id")
REFERENCES "birds" ("id")
我在约会表中也遇到了上述错误 - 几乎相同的交易。
如果我从所有表中删除外键,迁移工作完美!
这是我的鸟类迁徙:
class CreateBirds < ActiveRecord::Migration
def change
enable_extension "plpgsql"
create_table :birds do |t|
t.references :customer, index: true
t.string :name
t.string :breed
t.string :color
t.string :age
t.string :notes
t.timestamps null: false
end
add_foreign_key :birds, :customers, column: :customer_id
end
end
和模型:
class Bird < ActiveRecord::Base
belongs_to :customer
has_many :appointments
def self.search(search)
where("name LIKE ?", "%#{search}%")
end
end
我根据我从其他来源获得的建议调整并重新调整了这些文件,似乎无法弄清楚这一点。