如何将knex迁移打包到模块?

时间:2018-08-25 06:50:14

标签: node.js webpack serverless-framework serverless-webpack-plugin

我有一个带有serverless-webpack的Serverless框架项目。 Webpack很好地捆绑了应用程序本身。

我已经设置了lambda,以便在更新后尝试迁移,如链接的博客文章https://spin.atomicobject.com/2018/01/06/database-migration-aws-lambda/

中所述

代码在ES6中,并且无服务器框架通过webpack babel-loader运行它。我还通过将迁移文件复制到正确的文件夹中,将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中(迁移:'./src/migrations')。我试图要求调用withDB函数的文件中的所有文件,仍然是相同的错误。

迁移文件包含上下导出:

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

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

问题是我可以创建一个可以随无服务器部署一起提供的模块,以便knex能够找到这些模块。

通过在迁移文件夹中创建index.js文件,该文件以某种方式导出所有迁移? require('./ migration-file.js')无效。

0 个答案:

没有答案