使用Knex查询动态更改数据库



我在尝试动态设置Knex数据库时遇到问题。我有多个数据库,每小时递增一次。(例如db-1小时、db-2小时(。当我们换到新的时间时,我想使用下一个数据库。我创建了一个示例函数,它基于新数据库返回一个新的Knex函数,但我收到了一个不推荐使用的警告。

我的配置

import knex from 'knex';
const knexConfig = {
client: 'pg',
connection: {
host: host,
port: port,
user: user,
database: '',
password: password,
},
pool: {
min: 2,
max: 10,
},
timezone: 'UTC',
};
exports const getCurrentDb = async () => {
const hourDb = await getLatestDbName()
cons knexConfig.connection.database = hourDb; // I update the database name
return knex(knexConfig);
}

使用

import { getCurrentDb } from "./config"
const getSomething = async () => {
const db = await getCurrentDb()
return db.select().from("something")
}

代码正在工作,但我总是收到警告信息:

calling knex without a tableName is deprecated. Use knex.queryBuilder() instead.

如何动态连接到数据库?提前谢谢!

警告消息与DB切换机制无关。

尝试将您的select语句更改为类似以下内容:

import { getCurrentDb } from "./config"
const getSomething = async () => {
const db = await getCurrentDb()
return db("something").columns('*')
}

相关内容

  • 没有找到相关文章