如何使用Sequel查询多个数据库

时间:2015-08-19 22:24:33

标签: ruby

我有一个项目,它在目录结构中包含多个数据库,如下所示:

folder1
|_ sub1
  |_ db1
  |_ db2
|_ sub2
  |_ db1
  |_ d2

我想针对所有数据库运行一个查询。

有没有办法使用Sequel来做到这一点,还是我需要遍历目录并为每个数据库创建一个新的数据库连接,然后运行查询?

帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

你可以通过几种方式实现,但我会像这个未经测试的代码那样做:

%w[
  sqlite://folder1/sub1/db1.db
  sqlite://folder1/sub1/db2.db
  sqlite://folder1/sub2/db1.db
  sqlite://folder1/sub2/db2.db
].map{ |dsn|
  DB = Sequel.connect(dsn)
  DB[:some_table].where('some' => 'value').all
}

迭代每个数据库的DSN,打开连接并将结果作为结果数组返回。

由于我们不知道您的表模式是什么,所以这些是未定义的。