Sequelize如何同步判断数据库连接及同步成功
Hi,各位大佬。
是这样的,目前我希望实现通过sequelize的authenticate方法判断数据库连接是否正常,然后执行各个表的sync方法进行同步,均无问题则执行下面的逻辑代码。
但是在当前模式下,需要通过如下逻辑进行处理
sequelize.authenticate.then(function(){
User.sync().then(function(){
Order.sync().then(function(){
// 大段逻辑代码
});
});
});
这样会显得很累赘。
我尝试通过co模块进行如下处理
co( function *() {
try{
// Check the database connection
yield sequelize.authenticate();
// Sync the tables
yield User.sync({force: false});
yield Order.sync({force: false});
logger.info('Database init successfully.');
}
catch (e) {
logger.error('Database init unsuccessfully!');
process.exit(1);
}
});
doSomething();
但是我发现,下面的逻辑代码会先行,达不到我所要的效果。
请问该如何处理目前这种情况呢?
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1、数据库连接通过配置连接池来管理,不用特意去判断连接是否正常,因为其会自动进行重连操作
2、sync同步数据库表结构只需要在开始阶段的执行一次即可(只要表结构与你的model对应,其实是不需要sync操作的),这种场景建议使用promise.all(放到app.js里执行):