fastadmin是一款优秀的开源框架,除了有各种实用功能,官方还不竭余力的对框架的进行维护与更新。显然,哪怕不是为了体验更多的功能,我们也得出于安全性的考虑,适时的对自己基于fastadmin的项目进行升级更新。 下面我就介绍如何对fastadmin项目进行升级。
目录
1.环境介绍
先说下我的项目情况:
-
fastadmin版本比较老,2017年的 :1.0.0.20171026_beta
-
版本控制器用的是SVN。
2.思路
-
把SVN代码迁移到git下,如码云、coding等平台
-
在码云上fork 下 Fastadmin仓库
-
把转移到git的代码拉下本地,同时关联fork 后的fastadmin远程仓库地址
-
拉取fork后的fastadmin代码到本地,然后强制合并。
-
更新bower 和 composer依赖
-
同步数据结构
-
完成,并提交代码
3.准备工具
-
git客户端
-
bower 客户端,用于更新fastadmin前端依赖。
-
composer 客户端,用于更新fastadmin 的composer依赖
-
phpstorm (非必须),处理冲突文件的界面很友好,推荐使用。
-
Navicat (非必须),在本文中用于处理数据结构同步。
4.fork官方仓库
-
把SVN代码迁移git仓库,这里我就不再赘述,可以百度教程或者查看git教程,同时原本就用git管理的同学可以跳过这步,我这里用的是码云gitee。
-
由于官方Fastadmin使用的是码云gitee,我们得在gitee 注册一个账号,然后在fastadmin仓库 点击 “fork”
-
当把项目迁移到git后,把代码clone到本地,使用命令行切换到项目根目录,通过:
git remote -v
命令查看本地代码关联的远程仓库情况。 -
发现目前只有一个origin 远程仓库,这个是我们自己项目的远程仓库。然后还需要再增加一个远程仓库,也就是刚刚fork的fastadmin仓库。
-
复制地址后,使用命令
git remote add fastadmin + "你自己的fork下来的fastadmin 地址"
增加fastadmin远程仓库, 例如我的:git remote add fastadmin git@gitee.com:aijiyenan/fastadmin.git
-
添加完fork地址后,我们再通过
git remote -v
查看远程仓库情况,这时多出了fastadmin,这就是等下同步代码的关键:
5.合并仓库
- 通过:
git fetch fastadmin
命令,把远程仓库fastadmin拉下本地:
- 现在我们本地就有了origin 和 fasdadmin 两个仓库的代码,然后要做的就是把fasdadmin合并到origin。命令:
git merge fastadmin/master --allow-unrelated-histories
。PS:这是因为git认为这是两个不相关的项目,我们得在命令后面加上参数: --allow-unrelated-histories ,进行强制合并。
注意:如果遇到下面提示
Automatic merge failed; fix conflicts and then commit the result.
,不要惊慌。这是因为合并过程中有冲突文件,版本相差越大,冲突的文件就可能越多,我们只要解决有冲突的文件即可。
- OK,此时合并成功,但是发现新增了不少文件,同时也有不少文件有冲突。接下来就是最辛苦的环节了,解决冲突!但是不要怕,在phpstorm里解决冲突很友好。选择跟目录,右键:
Git-->Resolve Conflicts
- 啪啪啪,出现一堆冲突文件,但是不要怕,很多都是我们没改过的文件,所以,可以把确定我们没有动过的文件,多选后,选择右边的“Accept Theirs”接受fastadmin的文件,替换本地文件。反之如果以本地文件为准,则选择“Accept Yours”,如果遇到不确定的,就得选择 “Merge”,或者双击文件进行修改了
这是选择手动修改的界面以及说明:
6.更依赖&数据库
-
首先把/public/assets/libs 目录下的文件都删了
-
确保项目根目录里的.bowerrc 和 bower.json 是最新同步的
-
回到项目根目录,执行前端依赖安装命令:bower install,这样就可以把所有前端重装一遍。
-
更新composer插件(如果没composer,得安装,并且设置源为中国镜像,教程在composer官网上有),命令:
composer update
-
至此,代码部分已经全部同步完成。剩下就的是比对数据库结构是否有改动,然后同步结构。
- 所有都更新完后,进入系统查看,已经是最新版了。
7.总结&注意
Q:如果往后有更新,需要同步怎么办?
A:不用怕,由于本地项目已经和远程的fastadmin仓库关联,操作就不必这么复杂了。只要先到码云上,先把你的fork的fastadmin仓库与官方仓库进行同步,然后在本地依次,git fetch fastadmin,git merge fastadmin/master 既可以。
由于版本的更新,对应的配置可能会有增减。所以特别注意config.php等文件的合并。
更新完后,如果有错误,需要耐心调试
转自:https://www.nuomiphp.com/Article/detail/id/68.html