我想通过Unix套接字(而不是localhost
)使用Sequelize连接到Postgres 。
Postgres配置为接受来自user的Unix套接字连接pgdba
。所有工作都可以从命令行使用进行psql
。因此,Pg端已正确配置。
我似乎找不到Sequelize配置来支持Unix套接字。我能找到的最接近用于mysql的mysql,但似乎没有用:
var sequelizeConfig = { dialect: 'postgres', dialectOptions: { socketPath: '/home/pgdba/data/5432/.s.PGSQL.5432', } port: 5432 }; var sequelize = new Sequelize('fooDb', 'pgdba', 'passwd', sequelizeConfig);
启动应用程序时出现的错误:
Unable to connect to the database: +23ms { [SequelizeConnectionError: pg_hba.conf rejects connection for host "127.0.0.1", user "pgdba", database "fooDb"] name: 'SequelizeConnectionError', message: 'pg_hba.conf rejects connection for host "127.0.0.1", user "pgdba", database "fooDb"',...
显然,sequelize仍在尝试localhost
代替Unix套接字,并且pg_hba.conf
按配置正确拒绝了它。有没有一种方法可以为Postgres和Unix套接字配置Sequelize?
在Node v5.1.0和Postgresql 9.5.0beta2上使用Sequelize 3.14.2。