我有一个在开发中运行sqlite3的rails应用程序和生产中的pg,目前在Heroku上运行。我的heroku应用程序出错了。我有一个名为'archived'的列,它以nil开头,直到用户按下一个按钮,然后将当前时间写入单元格。然后,所有存档的消息!= nil然后按最近的顺序排序。
以下是我的heroku日志的一部分:
2013-05-07T22:00:31.775149 + 00:00 app [web.1]:在34ms内完成500内部服务器错误 2013-05-07T22:00:31.785541 + 00:00 app [web.1]: 2013-05-07T22:00:31.785541 + 00:00 app [web.1]:ActionView :: Template :: Error(PG ::错误:错误:类型为timestamp的输入语法无效:“” 2013-05-07T22:00:31.785541 + 00:00 app [web.1]:LINE 1:...“messages”。* FROM“messages”WHERE(archived&lt;&gt;'')ORDER ... 2013-05-07T22:00:31.785541 + 00:00 app [web.1]:^ 2013-05-07T22:00:31.785541 + 00:00 app [web.1] :: SELECT“messages”。* FROM“messages”WHERE(archived&lt;&gt;'')ORDER BY archived desc LIMIT 10):< / p>
这告诉我问题是来自我的控制器的这行代码:
@archived_messages = Message.where("archived <> ''").limit(10).order('archived desc')
我应该更改此代码以使其在sqlite3和pg中都有效?
提前致谢。
答案 0 :(得分:0)
知道了!
@archived_messages = Message.where("archived IS NOT NULL").limit(10).order('archived desc')
来源:Runs locally with SQLite, but on Heroku: PGError: ERROR: syntax error at or near "NULL"