很多粉丝知道,我弄了个在线的个人技术博客平台,平台包括:技术资料、人员管理、笔记、宣传、题库、简历优化等多个功能。但是因为是很久之前的框架,一开始只是想作为设计的花里胡哨的宣传广告来使用,所以采用的是django后端渲染 + 各种花式设计。但这种设计显然对后来的教学及技术平台这个企业级系统来说,不太够用。
这是以前的画风:
这是现在的画风:
那么,风格进行了如此大的转变,多亏了:vue-cli 和 elementPlus 。前后端分离,统一接口协议,可以让我不再顾虑太多数据问题,处理各种复杂操作也简单很多。
那么问题就来了,如何丝滑平稳的过渡!从老平台过渡到新平台!
相信,这个问题,也是很多企业和组织共同面临的难点。不过我比他们还难得是:我只有一台服务器,一个域名.... 连服务器的内存都不太够。
而且,新老平台的底层数据结构是不一样的,数据又多又乱,各种特殊数据,在这种情况下。数据的迁移方面,我没法简单的用SQL脚本来迁移,这样做的风险太大,恐怕之后的脏数据处理都要得不偿失。
在考虑差不多了之后,就开始了具体操作:
第一步:新平台项目上传到gitlab
上传其实没什么难的,大家都懂,而且gitlab和我这台电脑早就绑定,可以不用再配置ssh,直接就gitlab新建项目,clone到本地完事。
这里要强调下过滤.gitignore怎么写?
首先我vue-cli的项目和django项目在一起,一块上传。所以.gitignore就留一个即可,并且我放到了整个项目外侧(根目录的上一级)
这里需要注意下,vue-cli的项目内,很可能已经有了.git 和.gitignore,请立即删除!否则会对整个上传有影响(比如vue-cli的上传内容和预想不符)
过滤的django项目内容有:db.sqlite3 ,一些用户资源文件夹,.idea
过滤的vue-cli项目内容有:除了dist包之外 ,全过滤!
其中,!表示除了此之外。
也就是说,我们只需要上传dist包即可,dist包是我们前端开发完后打的,属于成果物。
第二步:部署
上传之后,就是部署,部署就是登录服务器拉代码。拉好代码后,运行一下,肯定是一堆报错,基本就是缺xxx包了,安装一下就好,比如什么跨域中间件,比如什么drf,比如什么xlrd.....
这里要注意,不要和我旧平台用一个端口哦!在数据迁移完成之前,旧平台也要运行的!而且新平台哪怕就算上线了,也要至少测试一天!整个过程中,不能终止旧平台,因为几乎每时每刻旧平台都有人在用!面试题库两万多人次阅读,简历优化也有不少,学员们更是几乎全天24小时的学习。
所以,为了平稳过渡,只能在新平台的数据完全迁移且测试没有bug之后,才可以替换,届时停掉旧平台,新平台启动和之前一样的端口即可。
第二步:迁移
在迁移的任务中,大多数数据,我都只敢手动复制粘贴,实在是怕出问题。那么手动转移的过程中,又恶心到了。就是俩个平台,无法同时登陆不同超管账号!
也就是说,我登录了旧平台,新平台就会被踢掉账号..... 反之亦然。
我才突然想起,两个平台的cookie和域名都一样啊!这自然是互相冲突啊。现在去后台改验证逻辑不但麻烦,而且会留下隐患(主要是烧脑)。
用两台电脑呢?虽然不会互相踢,但也没法复制粘贴了啊?正在我一筹莫展的时候,突然我想到了.... 用一台电脑的俩个浏览器不就完了????
于是,谷歌和safari上阵了。这次没有再互相踢.... 可以开心的一边迁移,一边刷剧了。
说到刷剧,有点剧荒了,有小伙伴推荐几个下饭神剧么?