我正在尝试在heroku上运行一组迁移。 这是错误的开始。
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation "articles" does not exist
: ALTER TABLE "settings" ADD CONSTRAINT "fk_rails_679ac32a85"
FOREIGN KEY ("article_id")
REFERENCES "articles" ("id")
有两次迁移。
第一个创建一个设置表,该表引用尚未创建的文章(下一次迁移应该生成此表)。第一次迁移看起来像这样:
class CreateSettings < ActiveRecord::Migration
def change
create_table :settings do |t|
t.string :commentaryid
t.string :logo
t.text :title
t.text :bannermessage
t.boolean :blog
t.string :default_ms_image
t.string :dark_color
t.string :light_color
t.string :commentarydirname
t.references :article, index: true
t.timestamps null: false
end
add_foreign_key :settings, :articles
end
end
然后应该在下一个迁移文件中创建articles表:
class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
t.string :article_name
t.string :xml_file
t.string :xslt_file
t.references :setting, index: true
t.timestamps null: false
end
add_foreign_key :articles, :settings
end
end
我不明白的是,当我使用sqlite在我的开发机器上运行此迁移时,我没有遇到任何麻烦。
那是什么交易。