使用 knex 获取连接类型

问题描述 投票:0回答:1

我正在使用 Knex 编写一个同时支持 MySQL 和 Postgres 的应用程序。

对于某些功能,查询构建器无法实现,我需要编写 MySQL 或 Postgres 特定查询。

我正在寻找的是这样的语法:

switch(knex.type) {

  case 'mysql' :
    knex.raw('...');
    break;
  case 'pg' :
    knex.raw('...');
    break;

}

我似乎找不到是否有办法做到这一点。文档或类型中没有(到目前为止)。这可能吗?

mysql node.js typescript postgresql knex.js
1个回答
0
投票

我在检查时看到了这一点,虽然我最初打算使用与 switch 语句中使用的相同的环境变量,但下面的内容似乎工作正常。

const getSqlStatement = (knex: Knex) => {
  const database = knex.client.dialect;

  switch (database) {
    case "mssql":
      return mssql statement;
    ... other cases
    default:
      // do nothing or throw an error or ?
  }
};

重要的是

knex.client.dialect
应该照顾好它。

© www.soinside.com 2019 - 2024. All rights reserved.