使用Sequelize通过Cloud SQL Node.js Connector连接CloudSQL失败,pg直连正常
Sequelize v6 + sequelize-typescript 搭配 Cloud SQL Node.js Connector 连接PostgreSQL失败(直接用pg包正常)
我在GCP外部通过Cloud SQL Node.js Connector连接Cloud SQL PostgreSQL数据库时遇到了以下问题:
- 直接使用
pg包搭配Connector生成的连接选项,可正常建立连接并执行查询 - 使用
sequelizev6 配合sequelize-typescript,按照相同的连接选项配置时,会触发连接错误 - 尝试使用
@sequelize/core(v7.0.0-alpha.27及以上版本)可以正常连接,但该版本无法与sequelize-typescript兼容,导致无法用其定义数据库模型
有没有人遇到过相同的问题?以下是相关代码示例和当前使用的依赖版本:
代码示例
Sequelize 连接代码(失败)
const connector = new Connector() const clientOpts = await connector.getOptions({ instanceConnectionName: "instanceConnectionName", ipType: IpAddressTypes.PUBLIC, authType: AuthTypes.PASSWORD }) // 使用 "@sequelize/core" 可正常连接,但使用 "sequelize" + "sequelize-typescript" 时失败 const sequelize = new Sequelize({ dialect: "postgres", dialectModule: pg, username: "postgres", password: "password", database: "database", dialectOptions: { ...clientOpts } }) await sequelize.authenticate()
pg 直接连接代码(成功)
const { Pool } = pg const pool = new Pool({ ...clientOpts, username: "postgres", password: "password", database: "database", max: 5 }) const { rows } = await pool.query("SELECT * FROM public.users") console.table(rows)
当前依赖版本
- "sequelize": "6.33.0" - "sequelize-typescript": "2.1.5" - "pg": "8.11.3" - "pg-hstore": "2.3.4" - "@google-cloud/cloud-sql-connector": "1.2.1"
内容的提问来源于stack exchange,提问作者Robert Wells
相关产品推荐
相关产品推荐

