gpt4 book ai didi

sql - 带有两个参数的 Rails 查询在生产环境中不起作用 : Operator does not exist

转载 作者:行者123 更新时间:2023-11-29 14:07:10 24 4
gpt4 key购买 nike

这个在 Rails 4 中带有两个参数的查询在我的开发系统上运行良好,在 SQLite 中以开发模式运行,在 postgresql 中以生产模式运行。当我将它移动到运行 postgresql 的生产服务器时,我收到一条错误消息,指出运算符(operator)不存在。当两台机器上的 postgresql 版本相同时,为什么我会收到此错误?

@events = Event.where("published == ? AND event_date >= ?", true,  DateTime.now.beginning_of_day).order('event_date ASC').limit(6)

错误:

E, [2014-06-14T13:26:24.470303 #28678] ERROR -- : PG::UndefinedFunction: ERROR:  operator does not exist: boolean == unknown
LINE 1: ...ELECT "events".* FROM "events" WHERE (published == 't' AND...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
: SELECT "events".* FROM "events" WHERE (published == 't' AND event_date >= '2014-06-14 04:00:00.000000') ORDER BY event_date ASC LIMIT 6
I, [2014-06-14T13:26:24.470786 #28678] INFO -- : Completed 500 Internal Server Error in 163ms
F, [2014-06-14T13:26:24.475470 #28678] FATAL -- :

最佳答案

PG::UndefinedFunction: ERROR: operator does not exist: boolean == unknown

应该只有一个 equal(=) sign should be used as stated in the PostgreSQL documentation.

这是 Doc

这应该可行

@events = Event.where("published = ? AND event_date >= ?", true,  DateTime.now.beginning_of_day).order('event_date ASC').limit(6)

拥有两个不同的数据库也是一个坏主意(在你的例子中是SQLitePostgresSQL)在开发生产中。

关于sql - 带有两个参数的 Rails 查询在生产环境中不起作用 : Operator does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24222548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com