---
# System prepended metadata

title: DB 上版筆記

---

# DB 上版筆記

:::info
提供給 sit 以上環境要上版的 DB 部分操作。
:::

## A. sit

1. 假設在 KX sit 環境要上版至 5.0.0，要上的單子有
	1. HCIYL-4110
	2. HCIYL-4117
	3. HCIYL-4120
2. 先行確認 common 與 brand 的這些單子的分支內，檔名、檔案位置與內容是否合規([檔名規範](https://hackmd.io/SkYlYJkrRTa-Sp_Kpbyz3A?view)，[內容規範](https://hackmd.io/@MqEZca4WTPOyTkEkeGNyaw/HycByhzPT))，合併分支包含:
    1. common/p/HCIYL-4120_新增萬聖節節慶皮膚
    2. common/a/HCIYL-4110_外部串接遊戲
    3. brand/KX/HCIYL-4110_新增PL_KYS_XPG外部廠商
    4. brand/KX/HCIYL-4117_KX_JACKPOT相關頁面權限
    5. brand/KX/HCIYL-4117_KX_JACKPOT相關頁面權限
3. common 部分，以 common/mian 為 base，開新分支 common/5.0.0/5.0.0，並將上面前兩個分支合併進來，會長這樣: 
![image](https://hackmd.io/_uploads/BJCaQ5sYp.png)

4. 將兩個單號資料夾移動到工具的 order/5.0.0 底下，如圖: (工具分支為 tools/versionTransform)
![image](https://hackmd.io/_uploads/HyYDEqoYa.png)

5. 啟動工具 (node app.js) 並依照問題輸入內容
    1. 選擇上版環境為 sit (1)
    2. 填入在 sit 的版本號 (4.1.0)
    3. 如果是熱更，請輸入熱更版本 (h7)，若為正常流程測試，請輸入 0
    4. 確認版本、hotfix與此次添加單號清單是否正確，若錯誤請輸入 -1
    5. 若正確請輸入此次更名的第一個檔案編號，若 common/4.1.0/4.1.0 上已經有一個檔案已完成更名，則此次更新應該從編號二開始，此時請輸入 2，則輸出的第一個檔案編號應該會是: F4.0.1.1.02。 
![image](https://hackmd.io/_uploads/rJzIFJaYp.png)


6. 即可在 sit 資料夾內看到轉譯好的檔案與資料夾
![image](https://hackmd.io/_uploads/SyKJujsFT.png)

7. 將工具內 sit/5.0.0 整個放到 git 內的 db_migration_new/common/sql/sit 內，並將 db_migration_new/common/sql/sit/5.0.0/5.0.0 內所有檔案複製到 flyway/sit 內
![image](https://hackmd.io/_uploads/BkRcnosKp.png)

8. 將第三點的單號資料夾刪除(因為已經放在版本資料夾內了)
![image](https://hackmd.io/_uploads/Byn03soK6.png)

![image](https://hackmd.io/_uploads/H1z1Tojta.png)

9. 上推並壓 tag: 5.0.0.rc0 (common部分不用品牌)

10. brand 處理方式相同 (tag 部分要加品牌: 5.0.0.rc0.kx)

11. 進入機器，到 /home/d4dev/flyway-new/sql/common 內，git fetch 後切換 tag，再到 /home/d4dev/flyway-new/sql/brand 內，git fetch 後切換 tag。

12. 到 /home/d4dev/flyway-new，執行 ./flyway info ，確認要跑的清單沒有錯。

13. 執行 ./flyway migrate 。

14. 執行 ./flyway info 確定檔案執行完成則上版結束。

:::danger
備註: 若執行過程出錯，執行 ./flyway repair，修正檔案後再次執行 ./flyway migrate。
:::


## B. WC 
1. 在 sit 資料夾內加入需上 wc 的版號資料夾(單號部分有沒有都行，但版本總合或是 hotfix 的一定要有)
![image](https://hackmd.io/_uploads/B1-EokpFp.png)

2. 啟動工具 (node app.js) 並依照問題輸入內容
    1. 選擇上版環境為 sit => wc (2)
    2. 填入在 sit 的版本號 (4.0.5)
    3. 填入 wc 版號 (4.0.7)
    4. 如果是熱更，請輸入熱更版本 (h7)，若無則輸入 0
    5. 轉換完成
![image](https://hackmd.io/_uploads/rJlPiJ6ta.png)

3. 轉換完成後會取得下圖，V為上 WC 的版號， F 為註記該部分在 sit 版號對照
![image](https://hackmd.io/_uploads/SJTTjJTYT.png)

4. 將取得的檔案放到 common/wc 此分支上，確保已經上過外測的東西有準備，方便其他品牌或是環境要做更版提交(brand 部分會有 brand/YL/wc 此類分支)

:::danger
理論上外測以上環境不會跑 flyway，故確定好版本落差後，直接將那段落差需要的資料夾撈出來壓縮一包出去即可
:::
