Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Postgresql Vapor中的多个数据库_Postgresql_Fluent_Vapor - Fatal编程技术网

Postgresql Vapor中的多个数据库

Postgresql Vapor中的多个数据库,postgresql,fluent,vapor,Postgresql,Fluent,Vapor,对于我的Vapor项目,我希望主要使用单个Postgres数据库。但是,对于某些长时间运行的请求,我希望使用同一数据库的单独只读克隆 这方面的文档非常稀少。如何在现有默认数据库旁边添加另一个数据库连接 静态函数配置数据库(\uApp:Application)抛出{ 尝试app.databases。使用(.postgres(url:“postgresql://user@localhost:5432/user”),作为:.psql) } 运行查询时,我如何告诉Fluent在第二个数据库上运行这些查

对于我的Vapor项目,我希望主要使用单个Postgres数据库。但是,对于某些长时间运行的请求,我希望使用同一数据库的单独只读克隆

这方面的文档非常稀少。如何在现有默认数据库旁边添加另一个数据库连接

静态函数配置数据库(\uApp:Application)抛出{
尝试app.databases。使用(.postgres(url:“postgresql://user@localhost:5432/user”),作为:.psql)
}

运行查询时,我如何告诉Fluent在第二个数据库上运行这些查询?

多个数据库的魔力在于
数据库ID
。您可以定义
数据库ID
的新实例,并注册与该实例的连接

扩展数据库ID{ 静态let readOnly=DatabaseID(“readOnly”) } 静态func configureDatabase(\uApp:Application)抛出{ 尝试app.databases。使用(.postgres(url:“postgresql://user@localhost:5432/user”),作为:.psql) 尝试app.databases。使用(.postgres(url:“postgresql://user@localhost:5432/read_only”),作为:。只读) } 然后,当您要运行查询时,不要使用
request.db
数据库,而是使用
.db(:)
方法并传入您的标识符:

User.query(on:request.db(.readOnly))

太棒了,谢谢!为后代补充一点:这个问题是关于Vapor和Fluent版本4.x的