Flyway - Migrates the schema to the latest version
Flyway 把所有的資料庫變更都稱為 Migration,套用資料庫變更的動作即為 Migrate。
Migration 分為 Versioned、 Undo、 Repeatable 三種。
Versioned Migration 是一般的 Migration,帶有版號,且只能運行一次。檔案格式如下:
Undo Migration 是用來還原 Versioned Migration 用的 Migration。檔案格式如下:
Repeatable Migration 是可重複運行的 Migration。檔案格式如下:
這邊筆者實際放入個檔名為 V1__Create_person_table.sql 的 Versioned Migration 到 sql 目錄,表示第一版變更,變更內容為 Create person table。
Migration 內容如下,只是簡單的建立一個名為 PERSON 的資料表。
create table PERSON (
ID int not null,
NAME varchar(100) not null
);
調用 Flyway migrate 命令套用資料庫的變更。
flyway migrate
連進資料庫可看到確實套上了資料庫的變更,連帶多了一張 flyway_schema_history 的資料表,裡面存放 Flyway 套用變更的紀錄。
Migrate 時會依這紀錄檢查是否需要套用資料庫的變更。