我从我们的暂存环境中提取了一个应用程序,该环境在暂存计算机上运行完美,但在本地它挂起在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)
此功能不会返回success
或error
。我不应该对他们的代码进行任何更改,因为我知道他们的库正在工作 - 我有一个本地副本,我们正在重构,我只需要暂存副本,在我们完成时快速更改生产重构。
可能导致此问题的原因是什么?它几乎可能是一个连接问题?
我已验证主机为localhost
,端口为5432
。更正username
,password
和dbName
。全部通过:
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
服务正在运行。
有没有人对如何解决这个问题有任何想法?或者获取更多信息的方法?
答案 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');
可能这种情况没有发生,也没有发生错误。希望我能提供帮助。