問題所在:
轉眼之間APP已經上線一個多月了,用戶數量呃呃呃勉強有2000注冊用戶。然后1.3版本的APP馬上就要開發完畢了。
然后上線的話,1.1,1.2都要能保留。IOS和安卓都一樣。
一:首先是接口版本
我想的方案就是,每個版本單獨部署分v1,v2,v3以前的接口都不變化。直接部署新的API。這樣是方便了部署,但是感覺有個很大的隱患就是如果修改了一個邏輯之前的所有項目有這個邏輯的版本都需要進行修改。
二:數據庫的改變
每個版本的接口或多或少都會有數據庫的變化,增刪改等東西。
更新步驟:
1.首先先確定最新版本與原來版本的數據庫結構的表區別。
2.將所有的新增的表結構設置合理的默認值,放置插入有錯誤。
3.停機更新(暫時還不考慮不停機更新),暫時定在晚上11點鍾,先將服務停掉然后將老的數據庫數據全部轉移到新的數據庫中來。
4.簡單測試看看是否有錯誤。
最重要的一步就是對比數據庫表結構的差異,大致步驟:
1.導出兩個數據庫表的表結構
mysqldump –uroot –p –d speedjump > speedjump1.sql
使用scp命令傳輸到令一台服務器上面
mysqldump –uroot –p –d speedjump > speedjump2.sql
-d 表示只導出結構,不需要導出數據。
2.比較
使用diff命令來比較
diff speedjump1.sql speedjump2.sql > diff.txt
3.有一些信息是無用的必須自增ID的值,最好剔除掉
sed-i
's/AUTO_INCREMENT=[0-9]\{1,\}//'
speedjump1.sql
再來進行比較。