使用Capistrano将我的更改部署到生产时,我收到错误
PG::UndefinedColumn: ERROR: column "address_id" of relation "member_applications" does not exist
在我的迁移中,我有
class CreateAddresses < ActiveRecord::Migration[5.1]
def change
create_table :addresses do |t|
t.string :full_name, null: false
t.string :email, null: false
t.string :phone, null: false
t.string :address, null: false
t.string :state, null: false
t.string :country, null: false
t.string :postcode, null: false
t.timestamps
end
end
end
和
class CreateMemberApplications < ActiveRecord::Migration[5.1]
def change
create_table :member_applications do |t|
t.references :location, null: false
t.references :addresses, null: false
t.references :user, null: false
t.string :full_name, null: false
t.date :birthdate, null: false
t.timestamps
end
end
end
最后
class SetAddressToNull < ActiveRecord::Migration[5.1]
def change
change_column_null :member_applications, :address_id, true
end
end
这最后一次迁移似乎是造成问题的原因。可能导致此问题的原因是什么?它一直在我的开发机器上工作,但自从我上次部署以来已经有一段时间了。
答案 0 :(得分:1)
我认为问题在于:
create_table :member_applications do |t|
...
t.references :addresses, null: false
...
end
它应该是t.references :address, null: false
单数。
您可以查看db/schema.rb
进行验证。