PG :: UndefinedColumn:相同DB的情况下的ERROR用于两个在Rails中相互连接的不同项目

时间:2017-11-16 08:39:45

标签: ruby-on-rails postgresql deployment 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

这是开发

中的模型字段
 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:

enter image description here

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

是的,我是对的

我已经很长时间在网络上没有更新来自管理员的架构,这就是我遇到这个问题的原因。

解决方案:将管理员中的schema.rb复制到网络仓库,因为两个项目都使用相同的数据库。

可能答案对某人也有帮助。

答案 1 :(得分:0)

可以尝试运行以向表中添加discount吗? bundle exec rake db:migrate

如果使用heroku: heroku run rake db:migrate