我一直在使用的代码是使用RedshiftRecord访问辅助数据库,它在我自己的计算机上工作,但当使用Dokku推送到生产环境时,所有对RedshiftRecord的调用,甚至是简单的
sql_statement = <<-SQL
SELECT COUNT(*)
FROM table
SQL
RedshiftRecord.connection.execute(sql_statement)
抛出一个
[web.1]: F, [...] FATAL -- : [...]
[web.1]: [...] ArgumentError (wrong number of arguments (given 2, expected 0..1)):
这显然很奇怪,因为在那个示例中我只传递了一个简单的sql语句,两台机器都使用ruby 2.6.6和rails6.0.3.7,以及这个版本的RedshiftRecord:https://github.com/iamdbc/activerecord6-redshift-adapter我已经确保环境变量,特别是数据库凭据在两个环境中是相同的。
问题可能是什么,我可以做些什么来诊断它,或者我可以做些什么来规避它?
摘要:尝试对RedshiftRecord进行最低限度的调用。期望调用在生产环境和开发环境中都能通过。调用在开发环境中通过,但在生产环境中没有,即使环境变量相同。
1条答案
按热度按时间tez616oj1#
通常,经过一个星期的努力,我在发布问题五分钟后自己找到了解决方案。虽然env变量是正确的,但变量 names 是错误的,显然,如果您在Rails.application.secrets.redshift_config中丢失了一个变量,则在调用它时会错误地得到ArgumentsError。