我使用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
这是开发:
中的模型字段 2.3.1 :008 > Fee.column_names
=> ["id", "booth_id", "amount", "description", "created_at", "updated_at", "discount"]
这是测试:
中的模型字段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"]
这是我的错误&#39; s snap:
任何帮助将不胜感激。
答案 0 :(得分:1)
是的,我是对的
我已经很长时间在网络上没有更新来自管理员的架构,这就是我遇到这个问题的原因。
解决方案:将管理员中的schema.rb
复制到网络仓库,因为两个项目都使用相同的数据库。
可能答案对某人也有帮助。
答案 1 :(得分:0)
可以尝试运行以向表中添加discount
吗?
bundle exec rake db:migrate
如果使用heroku:
heroku run rake db:migrate