历史版本升级
4.0.x升级到4.1.x版本
4.0.x到4.1.x是中型升级,因此数据库表有变动。
升级分为三步进行
1. 停止蓝眼云盘4.0.x
首先停止蓝眼云盘
2. 调整数据库schema
只需要执行以下sql语句,当然你也可以根据以下sql语句的语义在自己sql客户端用可视化操作。
首先是需要将表名前缀从 tank40_
升级成了 tank41_
,我的库名是tank,自己的库名视具体情况而定。
ALTER TABLE `tank`.`tank40_bridge` RENAME TO `tank`.`tank41_bridge`;
ALTER TABLE `tank`.`tank40_dashboard` RENAME TO `tank`.`tank41_dashboard`;
ALTER TABLE `tank`.`tank40_download_token` RENAME TO `tank`.`tank41_download_token`;
ALTER TABLE `tank`.`tank40_footprint` RENAME TO `tank`.`tank41_footprint`;
ALTER TABLE `tank`.`tank40_image_cache` RENAME TO `tank`.`tank41_image_cache`;
ALTER TABLE `tank`.`tank40_matter` RENAME TO `tank`.`tank41_matter`;
ALTER TABLE `tank`.`tank40_preference` RENAME TO `tank`.`tank41_preference`;
ALTER TABLE `tank`.`tank40_session` RENAME TO `tank`.`tank41_session`;
ALTER TABLE `tank`.`tank40_share` RENAME TO `tank`.`tank41_share`;
ALTER TABLE `tank`.`tank40_space` RENAME TO `tank`.`tank41_space`;
ALTER TABLE `tank`.`tank40_space_member` RENAME TO `tank`.`tank41_space_member`;
ALTER TABLE `tank`.`tank40_upload_token` RENAME TO `tank`.`tank41_upload_token`;
ALTER TABLE `tank`.`tank40_user` RENAME TO `tank`.`tank41_user`;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
清除潜在的脏数据:
DELETE t1
FROM tank41_space t1
LEFT JOIN tank41_user t2 ON t1.uuid = t2.space_uuid
WHERE t1.type = 'PRIVATE' AND t2.uuid IS NULL;
2
3
4
4.0.x升级到4.0.x版本
4.0.x到4.0.x是小型升级,数据库表没有任何变动。
1. 停止蓝眼云盘4.0.x
2. 替换资源文件html
用最新版本的html文件夹替换原有文件夹
3. 替换主程序tank
用最新版的tank文件替换原来根目录下的tank文件
4. 重启蓝眼云盘
重启即完成升级
3.1.x升级到3.1.x版本
3.1.x到3.1.x是小型升级,数据库表没有任何变动。
1. 停止蓝眼云盘3.1.x
2. 替换资源文件html
用最新版本的html文件夹替换原有文件夹
3. 替换主程序tank
用最新版的tank文件替换原来根目录下的tank文件
4. 重启蓝眼云盘
重启即完成升级
3.0.x升级到3.1.x版本
3.0.x到3.1.x是中型升级,因此数据库表有变动。
升级分为三步进行
1. 停止蓝眼云盘3.0.x
首先停止蓝眼云盘
2. 调整数据库schema
只需要执行以下sql语句,当然你也可以根据以下sql语句的语义在自己sql客户端用可视化操作。
首先是需要将表名前缀从 tank30_
升级成了 tank31_
,我的库名是tank,自己的库名视具体情况而定。
ALTER TABLE `tank`.`tank30_bridge` RENAME TO `tank`.`tank31_bridge` ;
ALTER TABLE `tank`.`tank30_dashboard` RENAME TO `tank`.`tank31_dashboard` ;
ALTER TABLE `tank`.`tank30_download_token` RENAME TO `tank`.`tank31_download_token` ;
ALTER TABLE `tank`.`tank30_footprint` RENAME TO `tank`.`tank31_footprint` ;
ALTER TABLE `tank`.`tank30_image_cache` RENAME TO `tank`.`tank31_image_cache` ;
ALTER TABLE `tank`.`tank30_matter` RENAME TO `tank`.`tank31_matter` ;
ALTER TABLE `tank`.`tank30_preference` RENAME TO `tank`.`tank31_preference` ;
ALTER TABLE `tank`.`tank30_session` RENAME TO `tank`.`tank31_session` ;
ALTER TABLE `tank`.`tank30_share` RENAME TO `tank`.`tank31_share` ;
ALTER TABLE `tank`.`tank30_upload_token` RENAME TO `tank`.`tank31_upload_token` ;
ALTER TABLE `tank`.`tank30_user` RENAME TO `tank`.`tank31_user` ;
2
3
4
5
6
7
8
9
10
11
12
13
14
3.1.x数据库连接支持utf8mb4,可以存储emoji,如果有需要的,也要将表做对应的调整。
ALTER TABLE `tank`.`tank31_bridge` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_dashboard` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_download_token` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_footprint` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_image_cache` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_matter` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_preference` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_session` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_share` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_upload_token` CHARACTER SET = utf8mb4 ;
ALTER TABLE `tank`.`tank31_user` CHARACTER SET = utf8mb4 ;
2
3
4
5
6
7
8
9
10
11
其次是 tank31_matter
表中新增了prop
,visit_time
,deleted
,delete_time
字段, tank31_preference
表中新增了preview_config
,scan_config
,deleted_keep_days
字段。
这一步操作可以不做,因为在安装引导界面会自动补齐缺失的字段。
ALTER TABLE `tank`.`tank31_matter` ADD COLUMN `prop` VARCHAR(1034) NULL DEFAULT '{}' AFTER `times`;
ALTER TABLE `tank`.`tank31_matter` ADD COLUMN `visit_time` TIMESTAMP NULL DEFAULT '2018-01-01 00:00:00' AFTER `prop`;
ALTER TABLE `tank`.`tank31_matter` ADD COLUMN `deleted` TINYINT(1) NULL DEFAULT 0 AFTER `visit_time`;
ALTER TABLE `tank`.`tank31_matter` ADD COLUMN `delete_time` TIMESTAMP NULL DEFAULT '2018-01-01 00:00:00' AFTER `deleted`;
ALTER TABLE `tank`.`tank31_preference` ADD COLUMN `preview_config` TEXT NULL AFTER `allow_register`;
ALTER TABLE `tank`.`tank31_preference` ADD COLUMN `scan_config` TEXT NULL AFTER `preview_config`;
ALTER TABLE `tank`.`tank31_preference` ADD COLUMN `deleted_keep_days` BIGINT(20) NULL DEFAULT 7 AFTER `scan_config`;
2
3
4
5
6
7
8
3. 替换文件
仅仅保留蓝眼云盘的matter
文件夹,其余文件(夹)conf
,html
,tank
用3.1.x
安装包中的替换。
因为数据库中记录了文件元信息,matter文件中保留了物理文件,因此只要保证这两处的数据即可。
4. 启动蓝眼
启动蓝眼,应该会进入到安装引导界面了,安装完成了之后,3.0.x的文件依旧会保留。
2.0.x迁移到3.0.x版本
由于2.0.x
文件目录的结构按照时间戳顺序进行组织,3.0.0
按照和蓝眼云盘中一致的物理目录组织,因此导致文件存放的结构不一致。为了让2.0.0
的用户更优雅的使用3.0.x
版本,作者特意写了一个迁移工具,按照以下步骤进行迁移。
准备条件:
- 停止
tank2.0.x
- 安装好
tank3.0.x
,即至少已经有一个超级管理员了。 2.0.x
和3.0.x
使用同一个数据库- 执行以下迁移命令,其中
YourUsername
和YourPassword
是指蓝眼云盘3.0.x
的超级管理员账号密码。Tank2.0MatterPath
是指2.0.x
版本的MatterPath,可以在tank.conf
文件中找到,如果这个字段为空,例如2.0.x
的安装目录为/data/tank2.0
,那么就使用/data/tank2.0/matter
。
cd tank 3.0.x安装目录
./tank -mode=migrate20to30 -username=YourUsername -password=YourPassword -src=Tank2.0MatterPath
2
迁移时间长短会和你的文件多少有关,请耐心等待,如果要想查看迁移过程日志:
cd tank 3.0安装目录
tail -f ./log/tank.log
2
- 迁移完毕后,所有
2.0.x
的用户名后会加上_20
.