You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The text was updated successfully, but these errors were encountered:
sandynz
changed the title
Add ShardingSphere configuration files from 4.x to 5.0.0 compatible migration toolkit
实现 ShardingSphere v4 到 v5 的配置文件升级
Nov 14, 2021
5.0.0
版本的配置文件格式相对于4.x
版本已经有了较大的变化。为了方便用户从4.x
迁移到5.0.0
,我们准备开发一个配置文件升级工具。支持的版本范围
从
4.0.0
,4.0.1
,4.1.0
和4.1.1
转换到5.0.0
。支持的配置来源
本地YAML配置文件。
不支持直接升级配置中心的配置。如果本机YAML配置已经同步到配置中心,可以把配置中心的配置手动生成一份本地YAML配置文件,然后再用升级工具处理。
1,准备工作:获取不同版本之间的配置差异
方式1:比较不同版本的配置
从 4.0.0...4.0.1, 4.0.1...4.1.0 和 4.1.0...4.1.1 来看,
4.x
版本之间没有破坏性的格式变动(小版本之间应该都是这个设计原则)。会有一些新增的配置,比如4.1.1
的YamlProxyRuleConfiguration
新增了shadowRule
。Sharding-JDBC 配置:
Sharding-Proxy 配置:
方式2:检查 API 变动历史
详情请参见 API Change History
方式3:在线比较不同版本的代码
示例:
方式4:比较不同版本的代码
下载源码之后从 tag (e.g.
4.1.1
,5.0.0
) checkout,可以对比下shardingsphere/examples
目录下的示例代码,比如:shardingsphere-jdbc-example
和shardingsphere-proxy-example
。格式变动示例
Proxy
server.yaml
文件:authentication
段落已变为AUTHORITY
规则很多规则文件:
sql.show
变为sql-show
,worker.id
变为worker-id
,algorithm.expression
变为algorithm-expression
。详情请参见本次提交。2,实现
基本框架已完成,需要实现
V4ToV5ConfigUpgrade
,具体位置已经加上TODO
。相关模型类:
ShardingSphereProductType
: 代表ShardingSphere
产品类型,目前包括:JDBC
和PROXY
。ShardingSphereSeries
: 代表版本系列,比如:v4
,v5
。SeriesConfigItem
: 代表一个配置文件,包括:名称、内容文本、内容反序列化之后的对象。SeriesConfigItems
: 代表一个版本系列的一组配置文件。老版本和新版本各有一组,老版本的作为输入参数,新版本的作为输出结果。基本思路及步骤:
SeriesConfigItem.contentObject
、序列化之后存入SeriesConfigItem.content
SeriesConfigItem
对象通过SeriesConfigItems.addConfigItem
存入SeriesConfigItems
SeriesConfigItems
对象相关工具类:
YamlEngine
: YAML序列化和反序列化注意事项:
config-upgrade-shardingsphere-shade-v4
和config-upgrade-shardingsphere-shade-v5
提供了包名重写过的ShardingSphere
依赖包,不保证需要用到的jar包都已经加入依赖,可以根据需要额外添加。开始参与贡献:
The text was updated successfully, but these errors were encountered: