diff --git a/%E8%B3%87%E6%96%99%E5%BA%AB%E9%81%B7%E7%A7%BB%EF%BC%88Migration%EF%BC%89%E4%BB%8B%E7%B4%B9%E8%88%87%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F.md b/%E8%B3%87%E6%96%99%E5%BA%AB%E9%81%B7%E7%A7%BB%EF%BC%88Migration%EF%BC%89%E4%BB%8B%E7%B4%B9%E8%88%87%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F.md index 2158025..9da15bd 100644 --- a/%E8%B3%87%E6%96%99%E5%BA%AB%E9%81%B7%E7%A7%BB%EF%BC%88Migration%EF%BC%89%E4%BB%8B%E7%B4%B9%E8%88%87%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F.md +++ b/%E8%B3%87%E6%96%99%E5%BA%AB%E9%81%B7%E7%A7%BB%EF%BC%88Migration%EF%BC%89%E4%BB%8B%E7%B4%B9%E8%88%87%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F.md @@ -1 +1,27 @@ -歡迎使用 Wiki! \ No newline at end of file +## 前言 + +本專案使用Flyway作為Database Migration的工具,Migration可以幫助我們在多人協同開發時確保資料庫Schema的一致性。 + +每當我們要讓資料庫異動共用資料(如User的角色role or 權限grant)或結構(增刪改DB Schema)時,就要寫一個migration的sql file來讓其他開發人員能同步此次修改 + +## Migration命名規範 +版本號結構為: `Va.b.c.d__{description}.sql` (有兩個'_') + +以目前`/build.gradle`中,`allproject` 的 `version` 為基礎版本號(a.b.c) + +後面一位數則往上遞增 + +假設專案為以下結構 + +![demo](https://user-images.githubusercontent.com/12562305/201591677-8877f0f0-6218-43db-80d5-46dc17deb3e5.png) + + +- 若目前基礎版本號碼為 `0.0.1` + + - 可以知道目前該基礎版本的migration已經有一個migration, 若要新增新的migration,則尾數向上+1,即命名為 `0.0.1.2__xxx.sql` + +- 若目前基礎版本號碼為 `0.0.2` + + - 可以知道目前沒有該基礎版本的migration, 若要新增新的migration,則命名為 `0.0.2.1__xxx.sql` + +