环境
环境功能为整个后端提供类似 Git 的分支功能。每个环境都是应用程序的完全隔离副本,包括自己的数据库、API 架构、角色、文件提供程序、网关路由和安全配置,让您可以在不影响生产数据的情况下进行开发、测试和暂存更改。
每个项目都以单个 master 环境开始。从那里,您可以分支新环境,从任何现有环境继承数据库架构(以及可选的数据)。每个分支独立运行:在一个环境中进行的更改不会传播到其他环境,直到您显式合并它们。
- 环境隔离: 每个环境都有自己的 PostgreSQL 数据库,确保分支之间的完全数据分离。
- 分支模式: 创建新环境时,您可以选择 Full(架构 + 数据)或 System(仅架构)克隆策略。
- 配置复制: 文件存储提供程序、网关路由、安全设置和环境变量可以在分支期间选择性地从源环境复制。
- 状态生命周期: 环境在定义的状态之间转换 —
active、branching、merging、error和archived— 以防止冲突操作。 - 父子关系: 环境维护树形结构,跟踪 diff 和 merge 操作的谱系。
- Schema Diff: 使用仅向前 diff 语义比较任意两个环境的数据库架构。参见 Environment Diff。
- Merge: 将架构更改从一个环境应用到另一个环境,具有自动备份、选择性更改应用(cherry-pick)和事务性 DDL。参见 Environment Merge。
- 备份: 存储在 S3 中的自动合并前备份和手动备份,能够恢复到任何目标环境(包括已删除的环境)。参见 Backups。
- 迁移历史: 所有合并操作的完整审计跟踪,包括应用每次迁移的用户、时间戳和具体应用的更改。
所有后端资源都限定于当前选择的环境。当您使用顶部导航栏中的环境选择器切换环境时,以下资源会反映该环境的状态:
| 资源 | 按环境限定 |
|---|---|
| 数据库表和架构 | 是 |
| API Explorer (GraphQL) | 是 |
| SQL Playground | 是 |
| 基于角色的访问 | 是 |
| 文件存储提供程序 | 是 |
| 身份验证提供程序 | 是 |
| API Keys | 是 |
| 自定义 API Gateway 路由 | 是 |
| 安全配置 (CORS, Rate Limits) | 是 |
| 环境变量 | 是 |
| 集成 | 是 |
注意: 切换环境会触发完整的上下文重新加载。environment 上下文在整个平台的后端服务中传播,确保每个请求都针对正确的数据库和配置进行解析。
环境系统旨在在开发阶段之间提供企业级隔离:
- 存储隔离: 每个环境由专用数据库支持。这确保开发环境中的错误或数据操作永远不会影响生产数据。
- 配置作用域: 从 API 密钥到安全策略的所有设置都按环境独立管理。在 “Staging” 中更改 CORS 策略不会影响 “Production”。
- 平台范围上下文: 当前环境自动在整个平台传播。无论您是浏览文件、运行 SQL 查询还是进行 API 调用,Archie Core 都确保您与正确环境的资源进行交互。