1

我正在使用 git 将两个项目作为不同的存储库运行。一个是承认另一个Web在rails中,两者都相互连接,使用基本相同的数据库。我只在管理报告上进行了迁移,然后将其克隆到网络中。问题是,我将它部署在服务器上并且测试用例失败了错误说

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"] 

这是我的错误快照:

在此处输入图像描述

任何帮助将不胜感激。

4

2 回答 2

1

是的,我是对的

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

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

愿答案对某人也有帮助。

于 2017-11-18T06:23:54.170 回答
0

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

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

于 2017-11-16T08:55:11.370 回答