我已经从临时环境中拉下了一个应用程序,该应用程序在临时计算机上完美运行,但在本地它卡在 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)
此函数不会返回成功
或错误
。我不必对他们的代码进行任何更改,因为我知道他们的库正在工作——我有一个可以工作的本地副本,我们正在重构,我只需要临时副本在我们完成时对生产进行快速更改重构。
什么可能发生变化导致此问题?看起来这可能是连接问题?
我已验证主机为 localhost
,端口为 5432
。正确的用户名
、密码
和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
服务正在运行。
有人知道如何解决这个问题吗?或者如何获取更多信息?
最佳答案
您可以使用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有日志输出吗?
关于javascript - Sequelize .sync 函数挂起 : emitter from serial. klass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18408431/