gpt4 book ai didi

javascript - 如何将 2 个 postgres 数据库连接到我的应用程序?

转载 作者:行者123 更新时间:2023-11-29 13:08:37 27 4
gpt4 key购买 nike

所以我的问题在主题中有所描述。我有 2 个由 docker 托管的 postgres 数据库,并使用 Nest.js 提供服务。我也使用 knex + objection.js。我花了大约 2 个小时在谷歌上搜索这个,但与我的堆栈相比没有发现任何东西

现在我像这样连接 1 db:

const customProviders = [
{
provide: 'KnexConnection',
useFactory: async (config: Config) => {
const connection = knex(config.db);
await connection.migrate.latest();
Model.knex(connection);
return connection;
},
inject: [Config]
}
];

最佳答案

创建 2 个单独的 knex 实例。一个用于连接每个数据库。

然后,您可以使用 Model.query(dbConnection)... 为每个查询选择应将其发送到哪个数据库查询,或者您可以创建 2 组模型,它们绑定(bind)到不同的数据库https://vincit.github.io/objection.js/api/model/static-methods.html#static-bindknex .

基本上你可以做到

const PersonBoundToDb1 = Person.bindKnex(db1);
const PersonBoundToDb2 = Person.bindKnex(db2);

// this query goes to db1
await PersonBoundToDb1.query()...;

// this query goes to db2
await PersonBoundToDb2.query()...;

有关如何将 Multi-Tenancy 数据库与 objection.js 一起使用的更多信息,请参见此处 https://vincit.github.io/objection.js/recipes/multitenancy-using-multiple-databases.html#model-binding-pattern

关于javascript - 如何将 2 个 postgres 数据库连接到我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57889490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com