我想要一种在Ruby中生成SQL查询的简单方法。我对ActiveRecord,Sequel和DataMapper都了如指掌。我不是在寻找ORM,而只是一种生成SQL语句字符串的简单方法。
我正在使用RBHive来运行Hive查询,并且想要一种简单的方法来生成Hive查询语句。
肯定存在(AR等),我看了Arel,看起来很有希望。但无法弄清楚如何从流行的ORM库中剥离SQL语句生成片段。一切都需要连接到数据库服务器。
目前我只使用原始SQL字符串,但我希望摆脱它,因为查询变得越来越复杂且容易出错。
有什么想法吗?
答案 0 :(得分:3)
你说
所有内容都需要连接到数据库服务器。
我认为,至少在Sequel中你可以使用虚拟数据库:
require 'sequel'
DB = Sequel::Database.new() #-> <Sequel::Database: >
puts DB[:test].sql #-> SELECT * FROM "TEST"
答案 1 :(得分:2)
你是对的,你正在寻找Arel,它用于为SQL语句构建AST,不需要数据库连接。
但语法与您以前看到的完全不同。所以要注意。
在这里阅读README,看看它是否有意义: