mysql - 使用 knex 獲取連接類型
我正在編寫一個同時支持 MySQL 和 Postgres 的應用程式,使用 Knex。
對於某些功能,查詢生成器不夠用,我需要編寫 MySQL 或 Postgres 專用的查詢。
我正在尋找的語法是像這樣的:
switch(knex.type) {
case 'mysql' :
knex.raw('...');
break;
case 'pg' :
knex.raw('...');
break;
}
我似乎找不到是否有辦法做到這件事。在文件或類型中(到目前為止)都沒有。這有可能嗎?
答案#1
我在四處查看時看到了這個,雖然我原本打算使用我在 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 應該處理它。
