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