我有一个项目,它在目录结构中包含多个数据库,如下所示:
folder1
|_ sub1
|_ db1
|_ db2
|_ sub2
|_ db1
|_ d2
我想针对所有数据库运行一个查询。
有没有办法使用Sequel来做到这一点,还是我需要遍历目录并为每个数据库创建一个新的数据库连接,然后运行查询?
帮助表示赞赏。
答案 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,打开连接并将结果作为结果数组返回。
由于我们不知道您的表模式是什么,所以这些是未定义的。