2

我已经从我们的暂存环境中提取了一个应用程序,该应用程序在暂存计算机上完美运行,但在本地它挂在该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. 正确username,passworddbName. 全部通过:

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服务正在运行。

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

4

2 回答 2

1

根据您提供的信息,很难说出原因。我想你应该调查一下

serial.klass[serial.method]

我猜应该有类似的东西

emitter.emit('success');

可能这没有发生,也没有发生错误。希望我能帮上忙。

于 2013-09-02T11:00:16.277 回答
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 是否有任何日志输出?

于 2013-08-26T19:29:45.940 回答