【问题标题】:Connecting Sequelize to Google Cloud SQL将 Sequelize 连接到 Google Cloud SQL
【发布时间】:2021-10-06 12:16:30
【问题描述】:

有谁知道如何从 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;

【问题讨论】:

  • 您的代码在哪里运行?应用引擎标准?灵活的?你的本地机器?
  • 我只是想在我的机器上使用谷歌云代理。但之后我想将该应用程序部署到 Google Cloud Compute Engine。
  • 好的,您正在使用代理。我更新了我的答案以更具体地代理。请确保您已遵循代理设置。

标签: postgresql deployment sequelize.js google-cloud-sql


【解决方案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}

【讨论】:

  • 当我的应用在 GCP 中运行时,此解决方案(使用 cloudsql 实例名称)对我有用(我之前一直在尝试使用外部 SQL 主机 IP 地址,该地址仅适用于外部网络并且没有在 GCP 中工作)
  • 我了解到 GCP 内部需要 dialectOptions 部分(例如 CloudRun),但在连接到本地机器上的代理时导致我出错 (cloud.google.com/sql/docs/mysql/…),请注意.我更新了我的代码...(host === '127.0.0.1' ? {} : { dialectOptions: { socketPath: host, }, })
【解决方案2】:

您可以像从任何其他客户端工具或 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 找到故障排除提示。

【讨论】:

  • 感谢 Veikko。我让它在我的本地计算机上工作。但是你知道我如何在 Sequelize 中设置它以进行生产吗? Sequelize doc 似乎建议使用 uri,格式如下: postgres://user:pass@example.com:5432/dbname docs.sequelizejs.com/manual/installation/… 我只是将它添加到主机中吗?您还知道应该替换 example.com 吗?
  • 您也可以从计算引擎实例中使用代理,或者您可以将您的计算引擎实例静态 IP 在云 sql 中列入白名单。两者都运作良好。您可以在 cloud.google.com/sql/docs/postgres/connect-compute-engine 找到有关计算引擎的具体说明和建议。
猜你喜欢
  • 2021-03-27
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 2020-11-15
  • 2020-01-23
  • 2020-04-06
相关资源
最近更新 更多