ruby-on-rails - PG::SyntaxError: 错误:在 Rails 中的生产模式

标签 ruby-on-rails postgresql activerecord heroku

我正在构建一个 Web 应用程序,当它在生产模式 @Heroku 上运行时崩溃并尝试执行以下查询,而在开发模式下一切运行顺利。

查询如下:

report_id = ReportsNum.group("report_id").
                    having("GROUP_CONCAT(patent_num ORDER BY patent_num ASC SEPARATOR ',') = ?",patents_list).
                    order(created_at: :desc).
                    pluck(:report_id).
                    first

这是我收到的异常消息:

2014-01-08T18:46:48.316625+00:00 app[web.1]: PG::SyntaxError: ERROR:  syntax error at or near "SEPARATOR"
2014-01-08T18:46:48.316633+00:00 app[web.1]:                                                               ^
2014-01-08T18:46:48.316637+00:00 app[web.1]: : SELECT "report_patent_nums"."report_id" FROM "report_patent_nums"  GROUP BY report_id HAVING GROUP_CONCAT(patent_num ORDER BY patent_num ASC SEPARATOR ',') = 'AB1234567S1,AB1234567S2'  ORDER BY "report_patent_nums"."created_at" DESC
2014-01-08T18:46:48.316701+00:00 app[web.1]: LINE 1: ...G GROUP_CONCAT(patent_num ORDER BY patent_num ASC SEPARATOR ...
2014-01-08T18:46:48.316632+00:00 app[web.1]: LINE 1: ...G GROUP_CONCAT(patent_num ORDER BY patent_num ASC SEPARATOR ...
2014-01-08T18:46:48.316703+00:00 app[web.1]:  

这可能是什么原因,因为在开发模式下它运行顺利?

以下警告可能是造成这种情况的原因吗?

[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.

最佳答案

在生产中使用 PostgreSQL 数据库时使用 MySQL 数据库进行开发是一个坏主意(即 Heroku 仅使用 Postgres,除非您使用附加组件)。

MySQL 和 Postgres 之间的 SQL 实现存在显着差异,这将导致难以解决的生产错误。

例如,我认为 Postgres 甚至没有您尝试使用的 GROUP_CONCAT 方法。

在这里查看 Heroku 的建议:

https://devcenter.heroku.com/articles/heroku-mysql

关于ruby-on-rails - PG::SyntaxError: 错误:在 Rails 中的生产模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004585/

相关文章:

database - 数据库中的 CPU 利用率实际上意味着什么?

python - 如何读取 psycopg2 的只读状态?

postgresql - Postgres 从当前插入创建触发器传递参数

mysql - 根据数组顺序对 Rails 查询进行排序

ruby-on-rails - 选择标签的 Rails 验证错误

ruby-on-rails - Rails ActiveStorage 版本控制(使用 paper_trail 或类似的东西)

ruby-on-rails - 无法从 https ://rubygems. org/即使在 ubuntu 14.04 上的 gem 更新系统后获取数据

php - 在非对象上调用成员函数 num_rows()

ruby-on-rails - 未定义的方法 `has_one_attached' - Spree、AWS S3、产品图片、Rails

ruby-on-rails - 我如何实现 Hash#all?对于多维哈希?