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

Sync Sequelize Databases on Serverless app

我在无服务器离线应用程序上使用 MySQL 的 sequelize。

我不确定如何在无服务器启动时同步所有模型?

我正在尝试这样做

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();

此方法同步导入到控制器中的模型,因此在这种情况下同步所有模型的唯一方法是将所有模型包含在每个控制器中。

这看起来不是一个很好的例子。 你有什么想法吗?

仅将 sequelize.sync 用于开发目的。使用 sequelize migrations 进行生产。

必须有一些方法可以在您的环境中 运行 控制台命令 db:migrate。当您推送所有迁移代码时,使用该命令将您的数据库更新到最新版本。