NodeJS Postgres方言在sequelize -m中不起作用

ttisahbt  于 2023-01-04  发布在  Node.js
关注(0)|答案(8)|浏览(193)

运行序列化-m
在我的config.json中

"development": {
    "username": "root",
    "password": null,
    "database": "**********",
    "dialect": "postgres",
    "protocol": "postgres",
    "port": 5432,
    "host": "127.0.0.1"
},

获取错误:

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

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

42fyovps

42fyovps1#

我也遇到过同样的问题,应该全局安装pg模块,命令如下:

npm install -g pg
nfs0ujit

nfs0ujit3#

你需要

$ npm install pg --save
$ npm install pg-hstore --save
$ npm install sequelize --save

另外,单独创建数据库,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'
  });
});
pzfprimi

pzfprimi4#

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

v440hwme

v440hwme5#

在应用程序上做了一个strace。看起来Sequelize v2.x正在搜索“pg-native”。
第一个月

t40tm48m

t40tm48m6#

我已经运行了root@#“npm install pg pg-hstore sequelize --保存”,它为我解决了这个问题。谢谢!

ipakzgxi

ipakzgxi7#

医生说:
随着Sequelizev1.6.0的发布,库独立于特定的方言。这意味着,你必须自己添加相应的方言库。另一个选择是使用附带方言库的sequelize包。
那么您可能已经错过了需要该库,请参见Sequelize docs。

nhjlsmyf

nhjlsmyf8#

有关此问题的更详细线索,请参见sequelize issue
安装pg-nativenpm i pg-native为我的情况解决了问题(Hakkar上面也建议了)。

  • 我在使用npm时遇到了同样的问题,所以这个问题与yarn无关(如上所述)
  • 我不能按照建议全局安装它,因为我需要它在Lambda函数中运行
  • 我安装了npm i --save pg,还安装了npm i -D @types/pg,因为我使用TS
  • 我导入了import * as pg from 'pg';import { Sequelize } from 'sequelize';,然后导入了const s = new Sequelize(connecStr, {dialectModule: pg})
  • 我不需要手动配置Webpack,也不想仅为了进行SQL查询而包含它
  • 还尝试重新启动node_modulespackage-lock.json

安装pg-native后,它解决了我的问题。
希望能有所帮助
相关问题:

相关问题