Skip to content

Upgrade history

supdger edited this page Oct 3, 2026 · 2 revisions

升级版本参考

本文用于核对升级前提,不表示列出的版本已经正式发布。当前操作入口见安装与升级。

0.7.0 升级到 0.7.1

此正常升级只适用于账本已精确完成 001–037 的 0.7.0 安装。SandPackage 会先核验账本身份、 账本结构和 86 张 SandIAM 表,再执行原始迁移 038;成功后账本必须有 39 行且最大修订号为 38。 038 仍记录为 package_version=0.7.0,这是已发布迁移身份的一部分,不是版本标记错误。 生成的 update.sql 将这项 preflight 与原始 038 主体组合为同一个显式 PostgreSQL 事务:任一 语句失败时,该生命周期事务会回滚。此事务组合不改变 SandPackage 对数据库阶段之后失败的恢复流程。

不要把恢复记录改为 FAILED,也不要手工补账本或执行 SQL。0.7.1 正常包不声明 0.6.0 → 0.7.1 直升,也不携带历史 recovery descriptor;若环境属于历史 0.6.0 失败升级,必须使用当时候选和宿主 已验收的恢复程序,而不是此包。

0.7.1 升级到 0.7.2

此正常升级只适用于账本已精确完成 001–038 的 0.7.1 安装。SandPackage 会先核验 39 条账本 身份、账本结构、sand_iam_service_grant.data_class 的既有非空结构和 revision 038 的保留索引, 再依次执行迁移 039、040。039 只解除该列的非空约束,保留 varchar(32)、internal 默认值、既有数据和检查约束;040 允许匿名 Passkey challenge 在验证成功后绑定已解析身份, 其他 challenge 仍必须绑定身份。成功后账本必须有 41 行且最大修订号为 40。

生成的 update.sql 将 0.7.2 preflight 与 039、040 组合在同一个显式 PostgreSQL 事务中。 缺失、多余、摘要冲突或结构不匹配均在 039 前关闭失败;任一语句失败时整段事务回滚。不要从 0.7.0 跨版本直接升级到 0.7.2,也不要手工清空 data_class、解除约束、补写 039/040 账本或 重复执行 update.sql。

0.7.2 升级到 0.7.3

此正常升级只适用于账本已精确完成 001–040 的 0.7.2 安装。SandPackage 会先核验 41 条账本 身份、账本结构、修订 039 的可空服务授权数据分级列和修订 040 的 Passkey challenge 约束, 再执行迁移 041。041 在固定锁顺序下检查身份授权、策略目标、策略版本、回滚来源和已发布 指针的存量归属;任何冲突都会关闭失败并回滚,不会自动删除、换绑或改写业务数据。

成功后策略动作列为 varchar(96),身份关系和策略目标受同应用组合外键保护,策略版本及其 发布/回滚指针受同策略、同应用组合外键保护;迁移账本为 42 行且最大修订号为 41。 生成的 update.sql 将 0.7.3 preflight 与 041 放在同一个显式 PostgreSQL 事务中。

文档迁移前版本

以下页面完整保留迁移前已公开说明;适用其各自声明的版本,不作为 0.8.3 候选验收证据。

Clone this wiki locally