SuperAPI AI 工具集

postgres

部署与运维

查看项目

更新于 10-15 21:10

技能介绍

用途:帮助在 DigitalOcean 上配置托管 Postgres 数据库,强调安全隔离与生产可用默认值。提供两条路径:Path A(可绑定变量,推荐)适合单库单应用、标准 CRUD 场景;Path B(Schema 隔离)适合多租户 SaaS、多应用共享集群、需要 schema 级隔离的场景。

主要能力:通过 doctl 创建集群、数据库与用户,并在应用 spec 中引用可绑定变量(如 ${db.DATABASE_URL}、${db.HOSTNAME}、${db.PORT}、${db.USERNAME}、${db.PASSWORD}、${db.DATABASE}、${db.CA_CERT})。附带脚本:secure_setup.sh(Path B 自动化并把密码写入 GitHub Secrets)、create_schema_user.py、list_schemas_users.py、generate_connection_string.py。参考文件涵盖 ORM 配置(Prisma、SQLAlchemy、Drizzle、TypeORM)、数据库迁移(Alembic、Prisma Migrate、Drizzle Migrate)、doctl 命令与故障排查。

必要用法:先创建集群与用户,例如 doctl databases create my-app-db --engine pg --region nyc3 --size db-s-1vcpu-2gb,再用 doctl databases db create、doctl databases user create 建库建用户;随后必须以 doadmin 运行 scripts/grant_permissions.sql 授权,因为用户默认无权限。在 .do/app.yaml 的 databases 与 services.envs 中引用变量,并确保 production: true 且名称完全匹配,否则变量不会注入。

限制与常见问题:出现 permission denied for schema 需以 doadmin 执行授权 SQL;relation does not exist 需检查 search_path 或使用 schema 限定名;too many connections 需通过 doctl 创建连接池;SSL 要求需在连接串加 ?sslmode=require。Path B 需 gh CLI。以上为资料提供内容,具体收费、定价与平台细节暂未提供。