1

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

错误图片

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

我可以在其上运行集成测试的解决方法或更好的内存数据库的一些见解将是可以接受的答案。

4

1 回答 1

2

一些帮助如何创建自定义方言在

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:'
});

但是,出于各种原因,通常我不建议使用不同的数据库进行测试和实际应用程序。主要是因为您不知道您的代码是否真正适用于真实数据库,并且您需要限制仅使用测试数据库和真实数据库引擎支持的那些数据库功能。

于 2019-01-07T09:36:11.947 回答