Как упаковать миграции knex в модуль?

У меня есть проект Serverless Framework с помощью serverless-webpack. Webpack красиво упаковывает само приложение.

Я настроил лямбды, чтобы попробовать миграцию после обновления, как описано в сообщении в блоге: https://spin.atomicobject.com/2018/01/06/database-migration-aws-lambda/

Код написан на ES6, и серверная фреймворк запускает его через babel-загрузчик webpack. Я также настроил веб-пакет для включения файлов миграции в пакет, скопировав их в нужную папку:

plugins: [
    new CopyWebpackPlugin([{ from: './src/migrations/*.js', to: '' }], {}),
]

Когда я получаю файлы в правильной папке, чтобы они были найдены, я получаю эту ошибку:

Error running migrations: Error: Cannot find module '.../.webpack/service/src/migrations/20180512154816_create-parameters.js'

Я попытался включить папку миграции в package.json в качестве зависимости (migrations: './src/migrations'). Я пытался потребовать все файлы из файла, где вызывается функция с DB, все та же ошибка.

Файлы миграции содержат экспорты вверх и вниз:

exports.up = function (knex, Promise) {
  ..
};

exports.down = function (knex, Promise) {
  ..
};

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

Создав файл index.js в папке миграций, который каким-либо образом экспортирует все миграции? require('./igration-file.js') не работал.

0 ответов

Другие вопросы по тегам