PG::UndefinedColumn:如果将相同的数据库用于在 Rails 中相互连接的两个不同项目,则会出错
PG::UndefinedColumn: ERROR in case of same DB is used for two different projects which are connected with each other in Rails
我 运行 两个项目作为不同的存储库 git。一个是承认另一个是rails中的Web
,两者相互连接,基本上使用相同的数据库。我只是在管理报告上进行了迁移,然后将其克隆到网络中。问题是,我将它部署在服务器上,但测试用例失败,错误提示
ActionView::Template::Error: PG::UndefinedColumn: ERROR: column fees.discount does not exist
我只是不明白为什么会这样,在管理员中我有那个字段。
我认为 schema.rb 可能在这种情况下起作用。我不太确定。
这是我的迁移,
class AddDiscountToFeel < ActiveRecord::Migration[5.0]
def change
add_column :fees, :discount, :integer, default: nil, null: true
end
end
这是我在 development 中的模型字段:
2.3.1 :008 > Fee.column_names
=> ["id", "booth_id", "amount", "description", "created_at", "updated_at", "discount"]
这是我在 test 中的模型字段:
C238s-iMac:web c238$ RAILS_ENV=test rails c
Loading test environment (Rails 5.0.0.1)
2.3.1 :001 > Fee.column_names
=> ["id", "booth_id", "amount", "description", "created_at", "updated_at", "discount"]
这是我的错误截图:
任何帮助将不胜感激。
可以尝试 运行 将 discount
添加到 table 吗?
bundle exec rake db:migrate
如果使用 heroku:
heroku run rake db:migrate
是的,我是对的
我已经很长时间没有从管理员那里更新架构了,这就是我遇到这个问题的原因。
解决方案:从管理员复制schema.rb
到网络仓库,因为两个项目使用相同的数据库。
希望答案对其他人也有帮助。
我 运行 两个项目作为不同的存储库 git。一个是承认另一个是rails中的Web
,两者相互连接,基本上使用相同的数据库。我只是在管理报告上进行了迁移,然后将其克隆到网络中。问题是,我将它部署在服务器上,但测试用例失败,错误提示
ActionView::Template::Error: PG::UndefinedColumn: ERROR: column fees.discount does not exist
我只是不明白为什么会这样,在管理员中我有那个字段。
我认为 schema.rb 可能在这种情况下起作用。我不太确定。
这是我的迁移,
class AddDiscountToFeel < ActiveRecord::Migration[5.0]
def change
add_column :fees, :discount, :integer, default: nil, null: true
end
end
这是我在 development 中的模型字段:
2.3.1 :008 > Fee.column_names
=> ["id", "booth_id", "amount", "description", "created_at", "updated_at", "discount"]
这是我在 test 中的模型字段:
C238s-iMac:web c238$ RAILS_ENV=test rails c
Loading test environment (Rails 5.0.0.1)
2.3.1 :001 > Fee.column_names
=> ["id", "booth_id", "amount", "description", "created_at", "updated_at", "discount"]
这是我的错误截图:
任何帮助将不胜感激。
可以尝试 运行 将 discount
添加到 table 吗?
bundle exec rake db:migrate
如果使用 heroku:
heroku run rake db:migrate
是的,我是对的
我已经很长时间没有从管理员那里更新架构了,这就是我遇到这个问题的原因。
解决方案:从管理员复制schema.rb
到网络仓库,因为两个项目使用相同的数据库。
希望答案对其他人也有帮助。