数据库
需要为项目配置或连接 Sealos Cloud 数据库时…
适用于在本地、Devbox 或应用初始化阶段,为项目创建、复用并连接 Sealos Cloud 数据库,并安全写入环境变量与验证连通性。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要为项目配置或连接 Sealos Cl特定
解决思路
- 接受项目路径和数据库意图;先分析,列出现有数据库,创建或复用所选类型,只接线已有应用 env key;保留原有 env 值和本地 Compose 回滚;默认私有访问。
- 将数据库删除、公开访问、备份删除、恢复到可能冲突的名称、禁用活跃应用依赖的访问视为门控操作,必须确认后再执行。
- 永不打印密码、完整连接字符串、kubeconfig、认证文件或复制出的 env 值。
- 在启用公开访问或执行破坏性操作前询问,并说明私有替代方案。
- 解析 JSON 格式的 CLI 输出;将所选工作区、命名空间、数据库身份和 env 修改限定在当前请求范围内。
- 每个请求按顺序执行:analyze -> resolve account/workspace -> list -> create or reuse -> wait -> fetch -> wire -> verify。
- 每个请求先解析项目、分析数据库需求、确认 CLI/认证/区域/工作区、创建或复用前先列出、获取连接详情、接线已有 env key、验证连通性或迁移;发出请求范围内的 success、stopped 或 error。
- 若工作区不明确、凭据响应不可用、env 目标被版本跟踪,在修改前停止请求。
- 输入契约:project 为本地路径或仓库源;intent 为数据库类型、用途和创建或复用偏好;access 默认私有,仅在确认后公开。
- 前置条件:analyzer 证据指出数据库信号和 env key;sealos-cli/auth/region/workspace 已解析;所选 env 文件被忽略且 key 已知。
- 所选工作区、命名空间、数据库身份和 env 修改保持请求范围。
- 到达相应阶段时,按一级深度加载 analyzer、CLI、env-wiring 和 connectivity 流程;即使详细命令在自有脚本或引用中,也保持凭据处理和公开/破坏性确认可见。
- success 输出包含数据库身份/状态、区域/工作区、env 文件和 key 名、脱敏的连接或迁移证据、确认状态、任何后续访问状态。
- stopped 输出包含工作区不明确、凭据未就绪、env 目标被跟踪、公开/破坏性确认边界或缺失前置条件及安全下一步;不得声称已执行门控修改。
- error 输出包含 analyzer、CLI、连接或 env 写入步骤,脱敏诊断类别、受影响 artifact、恢复动作;密码、URL、认证值和完整连接字符串必须脱敏。
- 可选 handoff 到 sealos-deploy,使用完整 tuple:target: sealos-deploy;inputArtifact 为脱敏数据库身份、私有访问状态、已批准的 env-key 契约和连通性/迁移证据;allowedAction 为在所选部署范围内消费批准的 Secret/env 引用;failureReturn 为带失败阶段的脱敏 analyzer、CLI、env 或连通性诊断;responseOwner 为 sealos-database。
- 直接数据库请求使用 target: none,并保持相同证据字段。
- 验证使用 analyze-project-database.mjs、sealos-cli JSON 输出、应用迁移/连通性证据,以及基线用例 database-positive-reuse-redacted-connectivity 和 database-violating-unconfirmed-public-or-destructive;接受成功前验证 env 保留和脱敏。
- 安全规则:永不打印数据库密码或完整连接字符串。
- 不覆盖现有 env 值,除非确认或保留旧值。
- 不提交 .env、.env.local、连接字符串、密码、kubeconfig 或 Sealos 认证文件。
- 启用公开数据库访问前询问;当应用运行在 Sealos/Devbox 内时优先私有连接。
- 破坏性操作前询问:database delete、backup-delete、恢复到可能冲突的名称、禁用活跃应用依赖的访问。
- 默认使用 sealos-cli 的 JSON 输出并解析,而不是抓取表格输出。
- 用 pwd 或 git rev-parse --show-toplevel 确认工作目录。
- 当项目目录可用时运行 analyzer:node <SKILL_DIR>/scripts/analyze-project-database.mjs <project-dir>;把 analyzer 结果作为起点,编辑前检查其引用的真实文件;它有意不打印秘密值。
- 检查 sealos-cli:优先已有 binary,运行 sealos-cli --version、sealos-cli database --help、sealos-cli whoami。
- 如果未安装,使用 npx -y sealos-cli@latest ... 执行一次性命令;全局安装前询问。
- 如果认证缺失或过期,运行 sealos-cli login <region>、sealos-cli workspace list、sealos-cli workspace current。
- 使用用户期望的工作区;若存在多个工作区且目标不明确,在 provision 前询问。
- 选择创建或复用:先运行 sealos-cli database list -o json。
- 当名称、类型和用途匹配时复用已有数据库;当项目没有合适数据库或用户要求新的开发数据库时创建新数据库。
- 除非项目明确需要更多,使用保守开发默认:sealos-cli database create postgresql --name <app-dev-db> --cpu 1 --memory 1 --storage 3 --replicas 1 -o json。
- 创建前,如果版本选择重要,检查支持版本:sealos-cli database versions --type postgresql -o json。
- 支持的 CLI 数据库类型包括 postgresql、mongodb、mysql、apecloud-mysql、redis、kafka、qdrant、nebula、weaviate、milvus、pulsar、clickhouse;使用项目检测到的类型;仅当项目没有数据库特定信号时默认 postgresql。
- 轮询详情直到数据库运行或连接数据出现:sealos-cli database get <name> -o json;sealos-cli database connection <name> -o json。
- 阅读 references/sealos-cli-database.md 获取当前命令契约和响应处理。
- 将连接映射到项目已使用的 env var:Prisma、Drizzle、TypeORM、通用 Postgres 用 DATABASE_URL;已有 MySQL 特定配置的 MySQL 应用用 DATABASE_URL 或已有 MYSQL_URL;MongoDB 应用用 MONGODB_URI;Redis 缓存/队列用 REDIS_URL。
- 使用现有本地 env 约定:Next.js 和前端相邻项目优先 .env.local。
- 仅当仓库已把 .env 用于本地开发且被 gitignore 时,优先 .env。
- 将 .env.example 仅视为文档;绝不在其中写真实 secrets。
- 保留注释和不相关 key。
- 如果连接字符串未直接以期望形式返回,从 sealos-cli database connection 的 host、port、username、password 字段组合。
- 运行项目正常验证路径,而不仅是 CLI 命令。
- 如果项目有明确命令,运行迁移或 introspection:prisma migrate、drizzle-kit migrate、db:migrate、db:push。
- 启动应用或运行打开 DB 连接的最小测试。
- 如果应用运行在 Sealos 外且无法访问私有 endpoint,先询问再启用公开访问:sealos-cli database enable-public <name> -o json;sealos-cli database connection <name> -o json。
- 测试后如果不再需要公开访问,禁用:sealos-cli database disable-public <name> -o json。
- 报告结果时总结:数据库名称、类型、区域/工作区、状态。
- 报告 env 文件和更新的 key,但不泄露 secret 值。
- 报告验证命令和结果。
- 报告任何公开访问状态和后续动作。
- 连接已有项目到 Sealos 数据库:运行 analyzer;检查它引用的 env/config 文件;列出现有 Sealos 数据库;创建或复用匹配数据库;获取连接详情;写入期望 env key;运行应用的 DB 验证。
- 替换开发用本地 Compose 数据库:识别指向 postgres、mysql、mongo 或 redis compose 服务的 app service env vars;provision 等效 Sealos 数据库;只更新应用的本地 env 文件,不更新 compose 文件,除非用户要求移除本地服务;保持本地 Compose 回滚简单,原始 compose service 仍可用。
- 给 Devbox 工作流添加数据库:Devbox 在同一 Sealos 工作区运行时使用私有数据库连接详情;将 env vars 写入仓库期望的 Devbox/app 环境;仅在 env vars 就位后重启或重载 Devbox 进程。
- 引用资源:scripts/analyze-project-database.mjs 是只读项目数据库意图分析器;references/sealos-cli-database.md 是 sealos-cli database 命令契约;references/env-integration.md 是安全 env 文件编辑和连接字符串映射。
适用边界 · 注意事项
- 不适用于不使用 Sealos Cloud、没有 Sealos 账号/工作区/认证的场景。
- 不适用于无法运行 sealos-cli 或 npx、且未获准安装/使用 Sealos CLI 的环境。
- 不适用于只想保留本地 Docker Compose 数据库且不希望改为托管云数据库的场景。