【專案】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
謝謝您的支持與鼓勵