Sequelize 同步方法在执行之前是否等待连接?

问题描述 投票:0回答:2

测试完这段代码后,我对我的表被创建感到困惑。我本以为调用 .sync 方法时不会连接。 sync() 方法是否以某种方式等待连接建立?

var Sequelize = require('sequelize');
var chalk = require('chalk');

var sequelize = new Sequelize('postgres://localhost/nfldb');

sequelize.define('team', {
  name: Sequelize.STRING
});

sequelize.authenticate()
  .then(function(){
    console.log(chalk.green('connected to database ' + sequelize.config.database));
  })
  .catch(function(er){
    console.log(chalk.red(er.message));
  });


sync();

function sync(){
  sequelize.sync({force: true})
    .then(function(){
      console.log(chalk.green('database has been synced'));
    })
    .catch(function(){
      console.log(chalk.red('unable to sync database'));
    });
}
sequelize.js
2个回答
1
投票

是的,

sync
会自动请求连接到数据库。
authenticate
旨在用于检查您是否可以在不执行实际查询的情况下连接到数据库 - 据我记得它是
SELECT 1 + 1
。不需要调用
authenticate
,它只是作为一种方便的方法。


0
投票

如果您使用了 .sync 那么就不需要调用 . authenticate , .sync() 在底层调用 .authenticate()

© www.soinside.com 2019 - 2024. All rights reserved.