SuperAPI AI 工具集

django-cloud-sql-postgres

部署与运维

查看项目

更新于 10-15 09:33

技能介绍

用途

本技能面向需要将 Django 应用部署到 Google App Engine Standard 并使用 Cloud SQL PostgreSQL 数据库的场景,提供从环境配置到部署上线的完整操作指引。资料标注状态为 Production Ready,最后更新于 2026-01-24,无额外依赖。

主要能力

  • 提供生产环境通过 Unix socket 连接 Cloud SQL 的 Django 数据库配置。
  • 提供本地开发通过 Cloud SQL Auth Proxy 连接的配置方式。
  • 给出 app.yaml、settings.py、gunicorn.conf.py 的完整示例。
  • 覆盖 6 步部署流程:创建 Cloud SQL 实例、配置 Django 项目、搭建本地开发代理、运行迁移、配置 Gunicorn、部署到 App Engine。
  • 列出 12 个已知问题及其预防方法,包括 Unix socket 缺失、连接被拒、密码认证失败、连接数过多、请求超时、静态文件 404、CSRF 失败、数据库不存在、IAM 认证失败、生产迁移失败、SECRET_KEY 暴露、冷启动超时。

使用方式

  1. 安装依赖:pip install Django psycopg2-binary gunicorn;本地开发可安装 pip install "cloud-sql-python-connector[pg8000]"。
  2. 在 settings.py 中根据是否运行于 App Engine(通过 GAE_APPLICATION 环境变量判断)分别配置数据库连接。生产环境使用 /cloudsql/{CLOUD_SQL_CONNECTION_NAME} 作为 HOST,PORT 设为空字符串;本地使用 127.0.0.1:5432。
  3. 创建 app.yaml,设置 runtime、entrypoint、env_variables,并在 beta_settings 中声明 cloud_sql_instances。
  4. 本地开发时启动 Cloud SQL Auth Proxy,并设置 DB_NAME、DB_USER、DB_PASSWORD、DEBUG 等环境变量。
  5. 运行 python manage.py migrate 执行迁移。
  6. 配置 Gunicorn,注意 App Engine Standard 的 worker 与超时限制。
  7. 执行 python manage.py collectstatic --noinput 后运行 gcloud app deploy app.yaml 部署。

适用场景

  • 在 Google App Engine Standard 上部署 Django 项目。
  • 使用 Cloud SQL PostgreSQL 作为后端数据库。
  • 需要本地通过 Cloud SQL Auth Proxy 连接云端数据库进行开发。
  • 需要参考常见部署错误的预防措施。

限制

  • 资料未提供收费、价格或平台可用性信息。
  • 资料未提供除 Google Cloud 之外的其他云平台适配说明。
  • 资料未提供性能基准或效果数据。
  • 部分配置(如 Secret Manager、Cloud Build 迁移)仅提及,未展开完整步骤。