使用sequelize postgres时出现语法错误

时间:2014-03-31 14:41:50

标签: node.js postgresql sequelize.js

sequelize: 1.7.0
pg: 2.11.1
posgreSql: 9.3 (pg server on my pc)

我的应用程序正在使用以下配置:

db: 'mysql://user:pass@localhost/dbname'

它适用于sequelizemysql方言。 当我将其更改为:

db: 'postgres://user:pass@localhost/dbname'

和方言postgres并尝试sequelize.sync()我收到以下错误:

{
   "message":"syntax error at or near \"(\"",
   "name":"error",
   "stack":"error: syntax error at or near \"(\"\n    at Connection.parseE (/Users/me/Desktop/node/myapp/node_modules/pg/lib/connection.js:561:11)\n    at Connection.parseMessage (/Users/me/Desktop/node/myapp/node_modules/pg/lib/connection.js:390:17)\n    at [object Object].<anonymous> (/Users/me/Desktop/node/myapp/node_modules/pg/lib/connection.js:92:20)\n    at EventEmitter.emit (events.js:95:17)\n    at Socket.<anonymous> (_stream_readable.js:746:14)\n    at EventEmitter.emit (events.js:92:17)\n    at emitReadable_ (_stream_readable.js:408:10)\n    at emitReadable (_stream_readable.js:404:5)\n---------------------------------------------\n    at module.exports.CustomEventEmitter.failure.CustomEventEmitter.fail.CustomEventEmitter.error (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/emitters/custom-event-emitter.js:93:10)\n    at exec (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/query-chainer.js:92:14)\n    at onError (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/query-chainer.js:72:11)\n    at EventEmitter.emit (events.js:95:17)\n    at module.exports.CustomEventEmitter.emit (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/emitters/custom-event-emitter.js:61:33)\n    at [object Object].<anonymous> (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/emitters/custom-event-emitter.js:131:17)\n---------------------------------------------\n    at module.exports.CustomEventEmitter.failure.CustomEventEmitter.fail.CustomEventEmitter.error (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/emitters/custom-event-emitter.js:93:10)\n    at exec (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/query-chainer.js:92:14)\n    at onError (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/query-chainer.js:72:11)\n    at EventEmitter.emit (events.js:95:17)\n    at module.exports.CustomEventEmitter.emit (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/emitters/custom-event-emitter.js:61:33)\n    at [object Object].<anonymous> (/Users/me/Desktop/node/myapp/node_modules/sequelize/lib/emitters/custom-event-emitter.js:131:17)",
   "code":"42601"
},
"msg":"uncaughtException",
"time":"2014-03-31T14:17:29.496Z",
"v":0
}

我做错了什么?

在我用pg创建dbname数据库之前有错误missing database所以我猜sequelize与pg连接但是它在pgsql代码中产生了一些语法错误?


问题是在模型模式中我有Sequelize.INTEGER(11) - 而postgres不允许传递11作为INTEGER的大小 - 这将在2.xx版本的Sequelize中解决(你可以找到相应的问题)关于sequelize github repo的这个问题。

1 个答案:

答案 0 :(得分:0)

Sequelize和postgres对我很有用。您是否在config.js中正确设置了方言,协议,端口

{
  "development":{
    "username":"name",
    "password":"pass",
    "database":"db",
    "dialect":"postgres",
    "protocol":"postgres",
    "host":"127.0.0.1",
    "port":"5432"
  },
...