如何使knex使用alasql作为自定义方言

时间:2019-01-02 20:02:04

标签: javascript node.js knex.js alasql

我正在尝试配置knex,以便可以针对集成测试针对测试数据库运行种子和迁移。我选择了alasql,并发现了一些资源here and here,这表明有可能。我正在使用knex-alasql模块及其设置说明。由于我将其设置为种子,因此我正在应用程序根目录下的knexfile.js文件中进行配置。但是我一直遇到这个错误。

image of error

我相信这与knex如何将客户端密钥解析为可用的方言有关。我的假设是,这可以在较旧版本的knex上运行,但不适用于0.15.2

上的当前版本

我可以对集成测试进行一些变通或更好的内存数据库见解。

1 个答案:

答案 0 :(得分:0)

有关如何创建自定义方言的一些帮助,

https://github.com/tgriesser/knex/blob/master/CONTRIBUTING.md#i-would-like-to-add-support-for-new-dialect-to-knex-is-it-possible

如果您这样配置knex,则SQlite具有内存数据库支持

const knexSqlite = Knex({
  client: 'sqlite',
  connection: ':memory:'
});

但是,出于各种原因,通常我不建议针对测试和实际应用使用其他数据库。通常是因为您不知道您的代码是否真的可以在真实数据库上运行,并且您将需要限制仅使用测试数据库和真实数据库引擎支持的那些数据库功能。