node.js - 在无服务器应用程序上同步 Sequelize 数据库

标签 node.js amazon-web-services sequelize.js serverless-framework

我在 Serverless 离线应用程序上使用 sequelize 和 MySQL。
我不确定如何在无服务器启动时同步所有模型?
我试图这样做

import Sequelize from "sequelize";
import mysql2 from 'mysql2';

const sequelize = new Sequelize('database', 'root', '', {
    dialect: 'mysql',
    dialectModule: mysql2,
    host: 'localhost',
});

const getSequelize = () => {
    sequelize.sync({ force: false })
        .then(() => {
            console.log(`Database & tables synchronised!`)
        });

    return sequelize;
}

export default getSequelize();
这种方法同步导入到 Controller 中的模型,因此在这种情况下同步所有模型的唯一方法是在每个 Controller 中包含所有模型。
这看起来不是一个很好的例子。
你有什么主意吗?

最佳答案

sequelize.sync 仅用于开发目的。使用 sequelize migrations 进行生产。
必须有某种方法可以在您的环境中运行控制台命令 db:migrate。当您推送所有迁移代码时,请使用该命令将您的数据库更新到最新版本。

关于node.js - 在无服务器应用程序上同步 Sequelize 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63010989/

相关文章:

node.js - npm 会在本地 package.json 中安装全局查找吗?

javascript - S3 PUT 不适用于 javascript 中的预签名 URL

amazon-web-services - AWS Codedeploy BlockTraffic/AllowTraffic 持续时间

node.js - Sequelize ,将对象与子(关联)对象一起存储

javascript - 为什么同步 SQL 是 "bad"?

node.js - Sequelize 使用同步时定义复数表

node.js - 为什么我会收到此错误? r1= buf1.比较(buf2); ^ 类型错误 : Object Rahul has no method 'compare'

javascript - tmpDir 的 path.join 返回两个额外的标记(空字符串)

Node.js应用监听消息队列并异步添加消息到redis

web-services - 亚马逊的简单 ISBN 预订