Как упаковать миграции 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') не работал.