Postgresql 将Sequelize连接到Google云SQL

Postgresql 将Sequelize连接到Google云SQL,postgresql,deployment,sequelize.js,google-cloud-sql,Postgresql,Deployment,Sequelize.js,Google Cloud Sql,有人知道如何从Sequelize连接到Google云SQL吗 sequelize = new Sequelize(process.env.TEST_DB || 'postgres', 'blah', null, { dialect: 'postgres', operatorsAliases: Sequelize.Op, host: process.env.DB_HOST || 'localhost', define: { underscored:

有人知道如何从Sequelize连接到Google云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;

您可以从Sequelize连接,就像从任何其他客户端工具或ORM连接一样。获得正确的访问权取决于代码的运行位置。如果您的代码在GCP之外运行,您可以按照此页面上的外部应用程序说明进行操作:

如果在本地计算机中使用代理,请将process.env.DB_HOST设置为127.0.0.1。您可以在找到故障排除提示

index.js

const sequelize = new Sequelize('{db_name}', '{db_user}', '{db_password}', {
  dialect: 'mysql',
  host: '/cloudsql/{instance}',
  timestamps: false,
  dialectOptions: {
    socketPath: '/cloudsql/{instance}'
},
});
将此添加到serverless.yml中

beta_settings:
  cloud_sql_instances: {xxxxxxx-xxxxxx:us-central1:xxxxxxxxxxx}

你的代码在哪里运行?应用程序引擎标准?灵活?你的本地机器?我只是想在我的机器上使用谷歌云代理。但之后我想将应用程序部署到Google云计算引擎。好的,您正在使用代理。我更新了我的答案,使之更具体。请确保您已遵循代理设置。谢谢Veikko。我让它在本地电脑上工作。但是你知道我如何在Sequelize中设置这个用于生产吗?Sequelize文档似乎建议使用uri,格式如下:postgres://user:pass@example.com:5432/dbname我是否将其添加到主机中?另外,您知道应该用什么替换example.com吗?您也可以从计算引擎实例使用代理,或者您可以在云sql中将您的计算引擎实例静态ip列为白名单。两者都很有效。您可以在找到有关compute engine的具体说明和建议。当我的应用程序在GCP内运行时,此解决方案(使用cloudsql实例名称)对我有效(我以前尝试使用外部SQL主机IP地址,该地址仅在外部网络中有效,在GCP内不起作用)我了解到,
方言选项
部分在GCP中是必需的(例如CloudRun),但在连接到本地机器()上的代理时导致了错误,这只是一个提示。我像这样更新了我的代码
…(主机==='127.0.0.1'?{}:{方言选项:{socketPath:host,},},})