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