Sequelize .sync函数挂起:来自serial.klass的发射器

时间:2013-08-23 17:21:48

标签: javascript node.js postgresql orm sequelize.js

我从我们的暂存环境中提取了一个应用程序,该环境在暂存计算机上运行完美,但在本地它挂起在sequelize.sync功能上。

该应用程序甚至没有达到“侦听端口......”

我已经在Sequelize内记录了同步功能,发现这就是卡住的地方:

(query-chainer.js中的第79-88行)

var emitter = serial.klass[serial.method].apply(serial.klass, serial.params)

emitter.success(function(result) {
  self.serialResults[serialCopy.indexOf(serial)] = result

  if (serial.options.success) {
    serial.options.success(serial.klass, onSuccess)
  } else {
    onSuccess()
  }
}).error(onError)

此功能不会返回successerror。我不应该对他们的代码进行任何更改,因为我知道他们的库正在工作 - 我有一个本地副本,我们正在重构,我只需要暂存副本,在我们完成时快速更改生产重构。

可能导致此问题的原因是什么?它几乎可能是一个连接问题?

我已验证主机为localhost,端口为5432。更正usernamepassworddbName。全部通过:

sequelize = new Sequelize(config.db.dbName, config.db.username, config.db.password, {
    dialect: 'postgres',
    host: config.db.host,
    port: config.db.port,
    logging: false,
    define: sequelizeMethods
});

我还确认postgresql-x64-9.2 - PostgreSQL Server 9.2服务正在运行。

有没有人对如何解决这个问题有任何想法?或者获取更多信息的方法?

2 个答案:

答案 0 :(得分:1)

可以使用psql -d <dbname> -h localhost -U <username> -W进行连接吗?

是否安装了pg@~2.0.0?如果是这样,它是安装在您的计算机上还是仅通过node_modules

提取

您是否尝试过npm install sequelize-postgres并使用:

var Sequelize = require('sequelize-postgres').sequelize
var postgres  = require('sequelize-postgres').postgres

var sequelize = new Sequelize('database', 'username', 'password', {
  dialect: 'postgres'
})

postgresql是否有任何日志输出?

答案 1 :(得分:1)

很难说为什么提供您提供的信息。我想你应该研究一下

serial.klass[serial.method]

我猜应该有像

这样的东西
emitter.emit('success');

可能这种情况没有发生,也没有发生错误。希望我能提供帮助。