Ruby on rails Sidekiq PG::UndefinedColumn:错误:不存在
我为我的Ruby on rails Sidekiq PG::UndefinedColumn:错误:不存在,ruby-on-rails,postgresql,model,sidekiq,Ruby On Rails,Postgresql,Model,Sidekiq,我为我的电话联系人型号进行了迁移,将分支机构更改为分支机构名称。然后我将代码更改为: class ContactWorker include Sidekiq::Worker def perform(record, service_type = 'test', list_type = 'test') phone_contact = PhoneContact.create( client_id: record['ClientID'], client
电话联系人
型号进行了迁移,将分支机构
更改为分支机构名称
。然后我将代码更改为:
class ContactWorker
include Sidekiq::Worker
def perform(record, service_type = 'test', list_type = 'test')
phone_contact = PhoneContact.create(
client_id: record['ClientID'],
client_name: record['ClientName'],
branch_id: record['branchID'],
branch_name: record['branch'],
unit_id: record['UnitID'],
member_id: record['MemberID'],
first_name: record['FirstName'],
last_name: record['LastName'],
date_of_birth: record['DateofBirth'],
most_recent_join_date: record['ChangeDate'],
old_membership_type: record['OldMembershipType'],
membership_type: record['NewMembershipType'],
phone_number: record['HomePhone'],
email: record['EMailAddress'],
visits: record['ID__Visits'],
primary_language: record['PrimaryLanguage'],
call_type: record['CallType'],
list_id: "#{Time.new.strftime("%Y_%m_%d")}_#{service_type}_#{list_type}"
)
end
end
如您所见,分支
不再列出。它清楚地说明了分支机构名称:
因此,我传入一条记录
,这是一个包含上述所有属性的哈希值。不管该散列看起来是什么样的,这就是我收到的错误:
“错误消息”=>“PG::未定义列:错误:列的“分支”
关系“电话\联系人”不存在\n第1行:插入到
\“电话联系方式”(“分支机构”、“分支机构id”、“呼叫…”n^\n:插入“电话联系人”(“分支机构”、“分支机构id”), \“调用类型”、“客户端id”、“客户端名称”、“创建地址”, \“出生日期”、“电子邮件”、“名字”、“姓氏”, \“列表id\”、“成员id\”、“成员类型\”, \“最近加入日期”、“旧会员类型”、“电话号码”, \“主要语言”、“单位id”、“更新地址”、“访问次数”)值 ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16、$17、$18、$19、$20)返回“id”, “错误\u类”=>“ActiveRecord::StatementInvalid” 错误更改为此,没有代码更改-我只是得到一个
未知属性:branch\u name
错误
这可能是什么原因造成的?我的迁移运行得很好,当我查看数据库时,我看到了branch_名称,如果我使用Rails控制台并手动一个接一个地完成代码所经历的步骤,它工作得很好。只有当我使用
Sidekiq
时,它才会失败。我使用的是Ruby 2.0.0和Rails 4.0.0。我认为模式是c疼痛。你尝试重新启动所有工作人员了吗?你完全正确。我不知道为什么部署到Heroku不会强制重新启动,但这不是出于某种原因。我再次部署时运气不佳,但在第三次部署时,所有工作人员都被重置并开始工作。在本地,我只需要重新启动Sidekiq,所有工作都正常应该是这样的。