如何将sequelize.sync选项强制设置为false?

时间:2015-09-02 21:49:07

标签: mysql node.js heroku sequelize.js

我正在使用mysql数据库部署node.js应用程序并在heroku上使用sequelize ORM。部署时,sequelize重新创建数据库。该应用程序不起作用,因为它需要数据库中的数据。

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

如何设置停止此行为的选项?我通过了文档并尝试了这个:

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

这被传递给sequelizeManager,而sequelizeManager又处理DB的创建。这种方法不起作用。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

sequelize.sync是一个选项对象,它简单地说明了在调用同步时应该如何执行,而且FYI,force默认为false。问题是您在代码中的某个地方调用了sequelize.sync(),可能就在您注册模型的地方。您需要阻止代码执行sync()