Skip to main content

概述

VillageSQL 遵循明确的版本控制和兼容性策略,以帮助您做出关于部署和升级的明智决策。

VillageSQL 版本控制

VillageSQL 使用 语义化版本 (SemVer) 来传达每个版本中更改的性质和影响。

版本格式

版本遵循以下格式:MAJOR.MINOR.PATCH

版本递增规则

  • MAJOR 版本(例如,1.0.0 → 2.0.0):可能需要代码修改或数据库迁移的重大更改
  • MINOR 版本(例如,0.1.0 → 0.2.0):以向后兼容的方式添加的新功能
  • PATCH 版本(例如,0.0.1 → 0.0.2):向后兼容的错误修复和次要改进
VillageSQL 目前处于 1.0 之前的开发阶段(版本 0.x.x)。在此阶段,API 和扩展接口可能会更频繁地更改,随着平台逐步稳定。

开发版本

带有预发布后缀的版本(例如,0.0.4-dev)是开发版本。默认情况下,服务器会阻止从使用开发版本初始化的数据库进行升级。开发版本未经过升级兼容性测试,并且可能包含破坏性模式或协议更改。 要允许这样做,请使用 --villagesql-allow-unsafe-dev-upgrade 启动服务器:
如果没有该标志,如果服务器检测到开发版本数据库,则会出错退出:
如果使用了该标志,服务器会记录警告并继续:
如果指定了该标志但当前版本不是开发版本,服务器将出错退出:
或者如果没有执行模式升级:

扩展兼容性

VillageSQL 扩展是特定于版本的。为 VillageSQL 的一个版本构建的扩展可能无法与另一个版本一起工作。 升级 VillageSQL 时:
  1. 检查新版本的扩展兼容性
  2. 根据需要更新或重新构建扩展
  3. 在生产环境中部署之前,在开发环境中测试扩展
请参阅 升级指南,了解详细的升级步骤。

从 0.0.3 版本的 SDK 更改

协议 2 扩展必须重新构建。 VEF 协议 3 自 v0.0.4 起已稳定,服务器现在会在加载时拒绝协议 2 扩展。使用类型化包装器(StringArgIntArgStringResult 等)针对协议 3 API 进行重新构建。 vef_version_t::extra 类型已更正为 const char* 在 0.0.3 中,该字段为 unsigned char*。大多数扩展不会直接访问它——它是由 SDK 从您的 manifest.json 版本字段中填充的。如果您的扩展程序确实访问它,请在针对 0.0.4 SDK 编译时删除任何 (unsigned char *) 强制类型转换。