У меня есть проект 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'
Я попытался включить папку migrations в package.json в качестве зависимости (migrations: './src/migrations'). Я попытался запросить все файлы из файла, в котором вызывается функция withDB, но та же ошибка.
Файлы миграции содержат экспорты вверх и вниз:
exports.up = function (knex, Promise) {
..
};
exports.down = function (knex, Promise) {
..
};
Вопрос в том, что я мог бы создать модуль, который мог бы поставляться с развертыванием без сервера, чтобы knex смог найти модули ..
Создав файл index.js в папке миграций, которая каким-либо образом экспортирует все миграции? require ('./igration-file.js') не работает.