跨越 12 个版本 Solo 升级过程记录

前言

我的博客风林火山,环境是阿里云的 Linux,版本是 0.66,时隔一年过去,最新版本已经是 1.80,遂决定升级。昨晚咨询向 D 咨询了升级的方法,得知不可以跳版本升级,遂崩溃(需要跨越 12 个版本升级),今天晚上饭后,硬着头皮上了。

过程

数据备份
  • 登录 mysql:mysql -u root -p
  • 查看数据库:show databases;
  • 数据库备份:退出 mysql 执,并行 mysqldump -uusername -ppassword b3log > /backupfile20170217.sql;
  • 将备份的数据拷贝到本机,将在本机完成升级后再部署到云上。
升级前准备

在进行升级前需要准备从 0.67 到 1.80 各版本的编译后 war 包,解压
,并把他们放在 tomcat 配置文件指定的部署路径下面。
将先前备份的数据文件,导入到本机的 mysql(新建数据库的时候注意编码)下面。

升级及验证
  • 从 0.67 到 1.80,逐个部署文件,每次部署完成后,启动前,修改 latke.properties 及 local.properties。
  • 启动 tomcat,输入 localhost 请求首页,此时系统会自动完成升级。
  • 等待 30S,检查 preference 或 option 表的 version 字段,看是否升级成功(版本号是否更新)。
    视情况进行下一步或排错。
升级后扫尾
  • 直到升级到最新版本,在本机将升级成功后的数据库导出,和程序包一起上传至阿里云,同时检查程序的配置文件 latke.properties 及 local.properties。
  • 在阿里云上,登录到 mysql, 运行以下命令:
  • 删除库(因为经过升级数据库已有了很大变化):drop database b3log;
  • 新建库,注意编码:create database 'b3log' default character set utf8 collate utf8_bin;
  • 切换至 b3log 库:use b3log;
  • 导入:source /flcoder180.sql;
重启服务
  • 启动 tomcat:service tomcat7 start;
  • 启动 nginx:service nginx start;

后话

升级后解决了两大问题:

  1. 博客模版比以前好看一倍。
  2. markdown 的兼容性问题没有了。

最后,鸣谢 D 大,跨了 12 个版本升级竟然顺利完成了,可见其各版本的衔接是下了大功夫的,solo 项目本身管理得非常到位。

最后的最后,经 D 大提醒,需要修改一下表名,登录 mysql 并切换到 b3log 下,执行

  • alter table b3_solo_archivedate rename b3_solo_archiveDate;
    alter table b3_solo_archivedate_article rename b3_solo_archiveDate_article;