Postgres方言不适用于sequelize -m

pjb*_*jbr 10 postgresql node.js express sequelize.js

运行Sequelize -m

在我的config.json中

"development": {
    "username": "root",
    "password": null,
    "database": "**********",
    "dialect": "postgres",
    "protocol": "postgres",
    "port": 5432,
    "host": "127.0.0.1"
},
Run Code Online (Sandbox Code Playgroud)

得到错误:

sequelize -m
Loaded configuration file "config/config.json".
Using environment "development".

/usr/local/lib/node_modules/sequelize/lib/transaction-manager.js:10
    throw new Error("The dialect " + sequelize.getDialect() + " is not support
          ^
Error: The dialect postgres is not supported.
    at new module.exports (/usr/local/lib/node_modules/sequelize/lib/transaction-manager.js:10:11)
    at new module.exports.Sequelize (/usr/local/lib/node_modules/sequelize/lib/sequelize.js:128:31)
    at Object.<anonymous> (/usr/local/lib/node_modules/sequelize/bin/sequelize:225:27)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3
Run Code Online (Sandbox Code Playgroud)

我的配置中是否存在问题,或者其他可能存在问题的问题?

Dim*_*ets 13

我偶然发现了同样的问题.您应该pg全局安装模块.这是命令:

npm install -g pg
Run Code Online (Sandbox Code Playgroud)


Jos*_*nke 7

不!

你需要安装pg-hstore.

请参阅:https://github.com/sequelize/sequelize/issues/2949


Mor*_*Nia 6

你需要拥有

$ npm install pg --save
$ npm install pg-hstore --save
$ npm install sequelize --save
Run Code Online (Sandbox Code Playgroud)

同时也单独创建数据库,sequelize不会为您创建数据库.

var Sequelize = require("sequelize");

// make sure you have created the database using pg Admin III 
var sequelize = new Sequelize("postgres://postgres:postgres@localhost:5432/yourdbname");

var Person = sequelize.define('person', {
  firstName: {
    type: Sequelize.STRING
  },
  lastName: {
    type: Sequelize.STRING
  }
});

Person.sync({force: true}).then(function () {
  return Person.create({
    firstName: 'jj',
    lastName: 'Hancock'
  });
});
Run Code Online (Sandbox Code Playgroud)


jrv*_*tti 5

我已经npm install --save pg在sequelize目录中运行了,现在一切都很好。


Str*_*tr. 1

医生说:

随着 Sequelizev1.6.0 的发布,该库独立于特定的方言。这意味着您必须自己添加相应的方言库。另一种选择是使用附带方言库的sequelize 包。

那么您可能错过了需要该库,请参阅Sequelize 文档