轨道2.3.4,sqlite3
我在试这个
生产。查找(:all,:conditions=>[“time”>?),
开始时间.utc],:order=>“时间描述”,
:限制=>100)
这个
条件
很好,但我有问题
:order=>时间描述
.
碰巧,我发现它在运行postgresql的heroku(heroku控制台测试)上工作。但是,在本地,使用sqlite3,
新条目
不管我设置了什么,都会按照旧的分类
时间
去。像这样(
输出已被手动剥离
):第二个条目是新的:
生产编号:2053939460,时间:“2010-04-24 23:00:04”,创建时间:“2010-04-24 23:00:05”
生产编号:2053939532,时间:“2010-04-25 10:00:00”,创建时间:“2010-04-27 05:58:30”
生产编号:2053949461,时间:“2010-04-25 00:00:04”,创建时间:“2010-04-25 00:00:04”
生产编号:2053949463,时间:“2010-04-25 01:00:04”,创建时间:“2010-04-25 01:00:04”
好像是按主键排序的,
身份证件
不是
时间
. 注意,该查询在heroku上运行良好,返回了一个正确排序的列表!我喜欢sqlite,它是如此的吻,我希望你能帮助我…
有什么建议吗?
更新/解决:
时间
是保留的sqlite3关键字(
日期
,其中也包括)。这就是为什么
:order => 'time DESC'
在PostgreSQL工作(
non-reserved keyword
),但不在sqlite3中。解决方案是,如果您想对sqlite3关键字进行排序,就避免将其作为列名。
重命名解决了这个问题。
我已经用标准的rails模式测试过了
更新的AT
和
创造在
,效果很好。
在开发中我还是更喜欢sqlite3,它使用起来非常简单和流畅,可以复制数据库并发送给您的合作伙伴。感谢@newtover!