From e4f13bd38eb731c15f6d63f884f3105ad3f241aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=B5=E6=98=8E=E8=BC=9D?= Date: Mon, 14 Nov 2022 14:40:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E3=80=8C=E8=B3=87=E6=96=99?= =?UTF-8?q?=E5=BA=AB=E9=81=B7=E7=A7=BB=EF=BC=88Migration=EF=BC=89=E4=BB=8B?= =?UTF-8?q?=E7=B4=B9=E8=88=87=E4=BD=BF=E7=94=A8=E6=96=B9=E5=BC=8F=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...%87%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F.md | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) 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` + +