Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 简单查询。您可以检查self.connection是什么类型的东西来区分dev/SQLite和production/PostgreSQL,或者您可以查看Rails.env.production?。这当然会在您的测试套件中留下一个漏洞_Ruby On Rails_Ruby_Sqlite_Postgresql_Activerecord - Fatal编程技术网

Ruby on rails 简单查询。您可以检查self.connection是什么类型的东西来区分dev/SQLite和production/PostgreSQL,或者您可以查看Rails.env.production?。这当然会在您的测试套件中留下一个漏洞

Ruby on rails 简单查询。您可以检查self.connection是什么类型的东西来区分dev/SQLite和production/PostgreSQL,或者您可以查看Rails.env.production?。这当然会在您的测试套件中留下一个漏洞,ruby-on-rails,ruby,sqlite,postgresql,activerecord,Ruby On Rails,Ruby,Sqlite,Postgresql,Activerecord,我认为,如果您打算在PostgreSQL之上部署,就应该停止在SQLite之上开发,现在就应该这样做,以最大限度地减少痛苦和痛苦。事实是,任何非平凡的应用程序都将与生产中使用的数据库结合在一起,或者您将不得不花费大量精力(包括针对您使用的所有不同数据库运行测试套件)来维护数据库的可移植性。从理论上讲,数据库独立性是一个不错的想法,但除非有人准备支付这种独立性所需的非琐碎成本(时间和财富),否则它是完全不切实际的。ORMs不会保护您免受数据库之间差异的影响,除非您的应用程序是另一个“15分钟博客”

我认为,如果您打算在PostgreSQL之上部署,就应该停止在SQLite之上开发,现在就应该这样做,以最大限度地减少痛苦和痛苦。事实是,任何非平凡的应用程序都将与生产中使用的数据库结合在一起,或者您将不得不花费大量精力(包括针对您使用的所有不同数据库运行测试套件)来维护数据库的可移植性。从理论上讲,数据库独立性是一个不错的想法,但除非有人准备支付这种独立性所需的非琐碎成本(时间和财富),否则它是完全不切实际的。ORMs不会保护您免受数据库之间差异的影响,除非您的应用程序是另一个“15分钟博客”玩具。

在PostgreSQL中,添加了许多天:

date '2001-09-28' + integer '7' = date '2001-10-05'
所以你可以简单地说:

where('due_date + days > :today', :today => Date.today)
然而,SQLite实际上根本没有日期类型,它将日期存储为ISO8601字符串。这意味着在一个日期中添加一个数字最终会连接字符串,这有点没用。SQLite确实有一个缺点:

日期(时间字符串、修饰符、修饰符等)
[…]
所有五个日期和时间函数都将时间字符串作为参数。时间字符串后跟零个或多个修饰符

因此,你可以说一些像
date('2014-01-22','+11天')
这样的话来计算日期。这就给你留下了这样一个问题:

where("date(due_date, '+' || days || ' days') > :today", :today => Date.today)
值得庆幸的是,ISO 8601日期字符串与字符串比较正确,因此
仍然有效

现在,您只能使用同一个简单查询的两个版本。您可以检查
self.connection
是什么类型的东西来区分dev/SQLite和production/PostgreSQL,或者您可以查看
Rails.env.production?
。这当然会在您的测试套件中留下一个漏洞



我认为,如果您打算在PostgreSQL之上部署,就应该停止在SQLite之上开发,现在就应该这样做,以最大限度地减少痛苦和痛苦。事实是,任何非平凡的应用程序都将与生产中使用的数据库结合在一起,或者您将不得不花费大量精力(包括针对您使用的所有不同数据库运行测试套件)来维护数据库的可移植性。从理论上讲,数据库独立性是一个不错的想法,但除非有人准备支付这种独立性所需的非琐碎成本(时间和财富),否则它是完全不切实际的。除非您的应用程序是另一个“15分钟博客”玩具,否则ORMs不会保护您免受数据库之间差异的影响。

哪个数据库?它们处理日期操作的方式都不同(因为我们毕竟有这类事情的标准:)。你可以用kdeisz的答案来做,但与sql查询相比,它会非常慢。Postgresql的hstore功能非常强大。@muistooshort:事实上,如果它能应用于尽可能多的数据库,那就太好了。我正在SQLite上开发,但稍后可能会部署到Postgres上。数据库可移植性是一个神话。开始在您现在要部署的同一个数据库上开发,否则您的生产部署可能会一团糟。哪个数据库?它们处理日期操作的方式都不同(因为我们毕竟有这类事情的标准:)。你可以用kdeisz的答案来做,但与sql查询相比,它会非常慢。Postgresql的hstore功能非常强大。@muistooshort:事实上,如果它能应用于尽可能多的数据库,那就太好了。我正在SQLite上开发,但稍后可能会部署到Postgres上。数据库可移植性是一个神话。开始在您现在要部署的同一个数据库上开发,否则您的生产部署可能会一团糟。哪个数据库?它们处理日期操作的方式都不同(因为我们毕竟有这类事情的标准:)。你可以用kdeisz的答案来做,但与sql查询相比,它会非常慢。Postgresql的hstore功能非常强大。@muistooshort:事实上,如果它能应用于尽可能多的数据库,那就太好了。我正在SQLite上开发,但稍后可能会部署到Postgres上。数据库可移植性是一个神话。开始在您现在要部署的同一个数据库上开发,否则您的生产部署可能会一团糟。哪个数据库?它们处理日期操作的方式都不同(因为我们毕竟有这类事情的标准:)。你可以用kdeisz的答案来做,但与sql查询相比,它会非常慢。Postgresql的hstore功能非常强大。@muistooshort:事实上,如果它能应用于尽可能多的数据库,那就太好了。我正在SQLite上开发,但稍后可能会部署到Postgres上。数据库可移植性是一个神话。开始在您现在要部署的同一个数据库上进行开发,否则您的生产部署可能会一团糟。这种方法可以工作,但返回的是数组而不是ActiveRecord关系,这对我来说并不理想。@muistooshort您有解决方案吗?或者只是注释?这种方法可以工作,但返回的是数组而不是ActiveRecord关系,这对我来说并不理想。@muistooshort有解决方案吗?或者只是注释?这种方法可以工作,但返回的是数组而不是ActiveRecord关系,这对我来说并不理想。@muistooshort有解决方案吗?或者只是注释?这种方法可以工作,但返回的是数组而不是ActiveRecord关系,这对我来说并不理想。@muistooshort有解决方案吗?还是只是评论?
where('due_date + days > :today', :today => Date.today)
where("date(due_date, '+' || days || ' days') > :today", :today => Date.today)