google-cloud-platform - 使用 Terraform 创建 Google Cloud sql 表

标签 google-cloud-platform terraform google-cloud-sql terraform-provider-gcp infrastructure-as-code

我正在尝试使用 terraform 创建 Google 云 sql 表。

但是,似乎只能通过 terraform 创建 google cloud sql 实例和 sql 数据库,并且使用 cloudshell 我们可以创建 sql 表。

但我尝试仅使用 terraform 创建表,无论是直接使用 terraform 脚本中的 sql 脚本,还是仅从 terraform 脚本中引用 sql 脚本,这些 sql 脚本将存储在某个位置,例如云存储。

任何相关的线索/建议都会非常有帮助。

提前致谢。

最佳答案

您可以尝试Provisioners

这是 Postgres 的一个简单示例

resource "google_sql_database_instance" "default" {
  [...]
  provisioner "local-exec" {
    command = "PGPASSWORD=<password> psql -f schema.sql -p <port> -U <username> <databasename>"
  }
}

Provisioners can be used to model specific actions on the local machine or on a remote machine in order to prepare servers or other infrastructure objects for service.

schema.sql 将保存您的表定义。

您也可以用同样的方式为 MySQL 更新此命令。确保您的本地或 CI/CD 计算机安装了 MySQL cli,以便从那里它将连接到数据库实例并创建表。

关于google-cloud-platform - 使用 Terraform 创建 Google Cloud sql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70492187/

相关文章:

javascript - 如何在不从 cli 重新部署函数的情况下更改 firebase 函数的环境变量 (functions.config())

amazon-web-services - "eksctl create iamserviceaccount"在 EKS 集群上做了什么?

javascript - SQL 日期与某些日期不一致

mysql - 将 linux 命令的输出导入 MySQL 表

python - 使用 AVRO 格式的 BigQuery 流式插入

python - Airflow 中的延迟通知系统

google-compute-engine - 减少永久磁盘大小

kubernetes - 如何在 master 上重新启动 kubelet 以更改标志选项以及如何在 terraform 中应用它

terraform - 从命令行设置模块变量的变量

mysql - 如果 CloudSQL 只读副本不允许创建 ipv4 地址,如何访问它