Как заставить knex использовать alasql в качестве собственного диалекта - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь настроить knex, чтобы я мог запускать seeder и миграцию для тестовой базы данных для интеграционных тестов. Я выбрал alasql и нашел некоторые ресурсы здесь и здесь , предполагающие, что это возможно. Я использую модуль knex-alasql и инструкции по его настройке. Так как я настраиваю это для заполнения, я делаю настройку в файле knexfile.js, расположенном в корне приложения. Однако я постоянно сталкиваюсь с этой ошибкой.

image of error

Я считаю, что это связано с тем, как knex анализирует клиентский ключ в пригодный для использования диалект. Я предполагаю, что это работало бы на более старой сборке knex, но не на текущей версии, на которой я 0.15.2

Приемлемым ответом будет некоторое понимание обходного пути или лучшей базы данных в памяти, на которой я могу запускать интеграционные тесты.

1 Ответ

0 голосов
/ 07 января 2019

Некоторая помощь в создании собственного диалекта описана в

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

SQlite имеет поддержку базы данных памяти, если вы настроите knex следующим образом

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

Однако в целом я бы не рекомендовал использовать разные базы данных для тестирования и для реального приложения по разным причинам. Главным образом потому, что вы не будете знать, будет ли ваш код работать с реальной базой данных, и что вам нужно будет ограничить использование только тех функций базы данных, которые поддерживаются тестовой базой данных и реальной базой данных.

...