自动化与脚本
用 fusion-infra-cli 为 Fusion…
当需要为 Fusion 服务开通数据库、执行 SQL 迁移、创建 PR 专用临时数据库或查看数据库状态时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用 fusion-infra-cli 为特定
解决思路
- 安装 finf:运行 dotnet tool install --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" Fusion.Infra.Cli
- 更新 finf:运行 dotnet tool update --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" Fusion.Infra.Cli
- 认证默认使用 DefaultAzureCredential(自动读取 az login 会话),也可通过 -t <token> 显式传入 token
- 创建数据库开通配置文件(如 db-config.json),最小配置包含 name 和 environment 字段
- 如需 SQL 权限,在配置文件中加入 sqlPermission,分别列出 owners 和 contributors 的 clientId
- CI/非生产环境开通:运行 finf database provision -f db-config.json -e ci --sql-owner-client-id <client-id> --sql-contributor-client-id <client-id> -o response.json --verbose
- QA 环境开通:运行 finf database provision -f db-config.json -e fqa --sql-owner-client-id <client-id> --sql-contributor-client-id <client-id> -o response.json --verbose
- 生产环境开通:运行 finf database provision -f db-config.json -e fprd --production --sql-owner-client-id <client-id> --sql-contributor-client-id <client-id> -o response.json --verbose
- PR 临时数据库开通(从 CI 复制):运行 finf database provision -f db-config.json -e pr -pr <pr-number> -ghr "equinor/my-repo" -c ci --sql-owner-client-id <client-id> --sql-contributor-client-id <client-id> --timeout 500 -o response.json --verbose
- 非生产环境执行迁移:运行 finf database migrate -d sql-myservice-fqa -m migrations/ -o migrations.json --verbose
- 生产环境执行迁移:运行 finf database migrate -d sql-myservice-fprd -m migrations/ --production -o migrations.json --verbose
- -m 参数可接受包含 .sql 文件的目录或单个 .sql 文件
- 环境键:ci 表示持续集成,fqa 表示 QA/预生产,fprd 表示生产(需 --production),pr 表示 PR 临时库(需 -pr 和 -ghr)
- 查看完整参数:运行 finf database provision --help 或 finf database migrate --help
- 在流水线中始终使用 --verbose 获取诊断输出
- 始终用 -o response.json 保存输出,便于流水线后续步骤引用结果
- --production 是显式保护标志,fprd 开通时绝不能省略
- 绝不在流水线 YAML 中传递原始 token,应使用 secret 变量并通过 -t 传入
- database delete 对非 PR 数据库不可逆,执行前必须先与用户确认
适用边界 · 注意事项
- 应用代码或服务变更——应使用服务仓库
- 角色或权限管理——应使用 fusion-roles-cli
- 数据库以外的基础设施(网络、存储等)以及 Kubernetes 或容器管理