개요
VillageSQL은 배포 및 업그레이드에 대한 정보 기반 결정을 도와주기 위해 명확한 버전 관리 및 호환성 정책을 따릅니다.VillageSQL 버전 관리
VillageSQL은 각 릴리스에서의 변경 사항의 성격과 영향을 전달하기 위해 Semantic Versioning (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.6-dev)은 개발 빌드입니다. 서버는 기본적으로 개발 빌드로 초기화된 데이터베이스에서 업그레이드를 차단합니다. 개발 빌드는 업그레이드 호환성에 대해 테스트되지 않았으며, 호환성을 깨뜨리는 스키마 또는 프로토콜 변경을 포함할 수 있습니다.
이를 허용하려면 --villagesql-allow-unsafe-dev-upgrade 플래그와 함께 서버를 시작하세요:
최소 업그레이드
--upgrade=MINIMAL 플래그와 함께 서버를 시작하면 반드시 필요하지는 않은 업그레이드 단계를 건너뜁니다. VillageSQL 스키마 업그레이드는 건너뛰는 단계에 포함되지 않습니다. 서버 업그레이드가 필요한 상태에서 이 모드로 서버를 시작하면, 서버는 서버 업그레이드를 건너뛰었다는 경고를 기록한 다음, 저장된 VillageSQL 스키마 버전이 빌드 버전과 일치하지 않으면 VillageSQL 스키마 업그레이드를 실행합니다.
--villagesql-allow-unsafe-dev-upgrade 플래그와 함께 시작하세요.
코드베이스 변경
모든 VillageSQL 버전은 코드베이스, 즉 서버가 빌드되는 기반이 되는 업스트림 포크에 연결되어 있습니다. 예를 들어mysql-9.7_0.0.6은 mysql-9.7 코드베이스의 버전 0.0.6입니다. 서로 다른 코드베이스의 버전 번호는 비교할 수 없으므로, 코드베이스 간 이동은 지원되는 업그레이드가 아닙니다. 즉, mysql-9.7_0.0.5에서 mysql-9.7_0.0.6으로는 업그레이드할 수 있지만, mysql-9.7_0.0.6에서 mysql-8.4_0.0.6으로는 업그레이드할 수 없습니다.
데이터 디렉터리는 이를 생성한 서버의 코드베이스를 villagesql_schema_version으로 기록합니다. 다른 코드베이스에서 빌드된 서버를 해당 데이터 디렉터리에서 시작하면 시작이 실패하고 오류 로그에는 villagesql_schema_version과 동일한 {codebase}_{version} 형식으로 두 버전이 모두 표시됩니다:
--upgrade=MINIMAL은 이 검사를 우회하지 않습니다.
확장 호환성
VillageSQL 확장은 특정 버전에 종속적입니다. 한 버전의 VillageSQL용으로 빌드된 확장은 다른 버전과 호환되지 않을 수 있습니다. VillageSQL을 업그레이드할 때:- 새 버전에 대한 확장 호환성 확인
- 필요한 경우 확장 업데이트 또는 재빌드
- 프로덕션 배포 전 개발 환경에서 확장 테스트

