将 Sequelize 连接到 Google Cloud SQL

ste*_*eph 4 deployment postgresql sequelize.js google-cloud-sql

有谁知道如何从 Sequelize 连接到 Google Cloud SQL?

  sequelize = new Sequelize(process.env.TEST_DB || 'postgres', 'blah', null, {
    dialect: 'postgres',
    operatorsAliases: Sequelize.Op,
    host: process.env.DB_HOST || 'localhost',
    define: {
      underscored: true
    },
  });
  connected = true;
Run Code Online (Sandbox Code Playgroud)

Mar*_*los 9

索引.js

const sequelize = new Sequelize('{db_name}', '{db_user}', '{db_password}', {
  dialect: 'mysql',
  host: '/cloudsql/{instance}',
  timestamps: false,
  dialectOptions: {
    socketPath: '/cloudsql/{instance}'
},
});
Run Code Online (Sandbox Code Playgroud)

在 serverless.yml 中添加这个

beta_settings:
  cloud_sql_instances: {xxxxxxx-xxxxxx:us-central1:xxxxxxxxxxx}
Run Code Online (Sandbox Code Playgroud)

  • 当我的应用程序在 GCP 内部运行时,此解决方案(使用 cloudsql 实例名称)对我有用(我之前一直尝试使用外部 SQL 主机 IP 地址,该地址仅在外部网络上工作,在 GCP 内部不起作用) (3认同)

Vei*_*kko 1

您可以像从任何其他客户端工具或 ORM 一样从 Sequelize 进行连接。正确获取访问权限取决于您运行代码的位置。如果您的代码在 GCP 外部运行,您可以按照此页面上的外部应用程序说明进行操作: https: //cloud.google.com/sql/docs/postgres/connect-external-app

如果您在本地计算机中使用代理,请将 process.env.DB_HOST 设置为 127.0.0.1。您可以在https://cloud.google.com/sql/docs/postgres/sql-proxy#troubleshooting找到故障排除提示。