mysql - 如何将 sequelize.sync 选项 force 设置为 false?

标签 mysql node.js heroku sequelize.js

我正在部署一个使用 mysql 数据库并在 heroku 上使用 sequelize ORM 的 node.js 应用程序。当我部署时,sequelize 会重新创建数据库。该应用程序无法运行,因为它需要数据库中的数据。

我相信 sequelize.sync 选项是罪魁祸首。在我的本地开发环境中,我手动设置了 force: false。但是在 heroku 上,正在重新安装 sequelize (package.json),我猜同步默认为 force:true。

如何设置选项来停止此行为?我浏览了文档并尝试了这个:

var sequelizeOptions = {
    host: "blah.blah.us-east-1.rds.amazonaws.com",
    dialect: 'mysql',
    port: 3306,
    sync: {force:false}
};

这被传递给 sequelizeManager,后者又处理 DB 的创建。这种方法是行不通的。非常感谢任何帮助。

最佳答案

sequelize.sync 是一个选项对象,它简单地规定了调用时应该如何执行同步,仅供引用,forcefalse 默认情况下。问题是您正在代码中的某处调用 sequelize.sync(),很可能是在您注册模型的同一位置。您需要阻止您的代码执行 sync()

关于mysql - 如何将 sequelize.sync 选项 force 设置为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32363697/

相关文章:

javascript - Node Express 中的 URL 参数重写

node.js - Discord.js 将中型帖子发送到 Discord channel

node.js - 当node.js关闭连接时,Jmeter测试脚本不起作用?

mysql - 在heroku上部署node应用程序时如何连接mysql

heroku - 防止 Heroku 空转的简单方法?

MySql 行到列(但动态行)

mysql - 在表的 JOIN 之前设置 LIMIT

php - 从数据库中转换乱码

php - 从多个 mysql 表构建 bootstrap 4 导航菜单

node.js - 如何让本地 heroku 应用程序连接到远程 REDIS?