> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 版本策略

> 了解 VillageSQL 的版本管理规范和 MySQL 兼容性矩阵。

## 概述

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

## VillageSQL 版本控制

VillageSQL 使用 [语义化版本](https://semver.org/) (SemVer) 来传达每个版本中更改的性质和影响。

### 版本格式

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

```
0.0.1
│ │ │
│ │ └─ PATCH version
│ └─── MINOR version
└───── MAJOR version
```

### 版本递增规则

* **MAJOR 版本**（例如，1.0.0 → 2.0.0）：可能需要代码修改或数据库迁移的破坏性变更
* **MINOR 版本**（例如，0.1.0 → 0.2.0）：以向后兼容的方式添加的新功能
* **PATCH 版本**（例如，0.0.1 → 0.0.2）：向后兼容的错误修复和次要改进

<Note>
  VillageSQL 目前处于 1.0 之前的开发阶段（版本 0.x.x）。在此阶段，随着平台逐步稳定，API 和扩展接口可能会更频繁地更改。
</Note>

### 开发版本

带有预发布后缀的版本（例如，`0.0.5-dev`）是开发版本。默认情况下，服务器会阻止从使用开发版本初始化的数据库进行升级。开发版本未经过升级兼容性测试，并且可能包含破坏性模式或协议更改。

要允许这样做，请使用 `--villagesql-allow-unsafe-dev-upgrade` 启动服务器：

```bash theme={null}
mysqld --villagesql-allow-unsafe-dev-upgrade --datadir=/path/to/data
```

若不指定该标志，且服务器检测到开发版本数据库，则会出错退出：

```
Upgrading from a development version (0.0.5-dev) is not allowed. Use --villagesql-allow-unsafe-dev-upgrade to permit this.
```

如果使用了该标志，服务器会记录警告并继续：

```
Upgrading from a development version (0.0.5-dev); --villagesql-allow-unsafe-dev-upgrade was specified.
```

如果指定了该标志但当前版本不是开发版本，服务器将出错退出：

```
--villagesql-allow-unsafe-dev-upgrade specified, but current version (0.0.3) is not a development version.
```

或者如果没有执行模式升级：

```
--villagesql-allow-unsafe-dev-upgrade specified, but no upgrade is being performed.
```

## 扩展兼容性

VillageSQL 扩展是特定于版本的。为 VillageSQL 的一个版本构建的扩展可能无法在另一个版本中正常运行。

升级 VillageSQL 时：

1. 检查新版本的扩展兼容性
2. 根据需要更新或重新构建扩展
3. 在生产环境中部署之前，在开发环境中测试扩展

请参阅 [升级指南](/docs/guides/upgrade)，了解详细的升级步骤。
