【專案】Fake Flyway
最近想要導入 flyway
功能來做資料庫腳本的版本控管,但現行的資料庫是 mysql5.6
而 flyway
免費版本並不支援該版本,所以只好依照 flyway
的概念簡單做了一個出來。
大家可以參考我實作的原始碼 Fake Flyway。
補充說明: 大家可以看一下官網上 flyway
是怎麼介紹他自己的。
Version control for your database.
Robust schema evolution across all your environments.
With ease, pleasure and plain SQL.
Quick Start
這邊會介紹
- 如何使用
- 設計理念
- 未來展望
如何使用
- 開始可以先使用
Docker
啟動mysql
資料庫
1 | docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql |
- 修改
Config
1 | { |
- 將要執行的腳本放在
sql
的資料夾中
如:2020070801_Greddy_sample_create_database.sql
1 | CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; |
這邊有個地方要注意的就是檔案命名規則為:
日期+流水序號
+作者
+描述
設計理念
說明
在一開始的時候會先建立一個 schema
為 db_migrate
,並且建立一張表 migration
。
每次執行時,會先將 sql
資料夾的檔案與資料表 migration
進行比對,看看是否有執行過。
如果沒有執行過就會進行執行,並且寫入。
流程圖
未來展望
- 支援更多種 DB 類型
- 對檔案進行 checksum
Reference
今天就介紹到這邊,如有其他疑問請再跟我說。
Donate
謝謝您的支持與鼓勵