---
# System prepended metadata

title: 新 DB 建立流程

---

# 新 DB 建立流程

1. 下載 flyway
```code=
sudo wget -qO- https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/7.15.0/flyway-commandline-7.15.0-linux-x64.tar.gz | sudo tar -xvz && sudo ln -s `pwd`/flyway-7.15.0/flyway /usr/local/bin
```

2. 進入 sql 資料夾
```code=
cd flyway-7.15.0/sql
```
3. 下載 common 與 brand
```code=
git clone https://git_deployment:iiZt25jjdMe4SLMwJCMY@git-ewwk.qyrc452.com/yl-group/yl-ly-kx-merge/db_migration_new.git common
git clone https://git_deployment:iiZt25jjdMe4SLMwJCMY@git-ewwk.qyrc452.com/yl-group/yl-ly-kx-merge/db_migration_new.git brand
```
4. 依照版本需求的 tag or branch 分別切換 common 與 brand 的 tag
```code=
cd common
git checkout commonTag
cd ../brand
git checkout brandTag
```
5. 回到 flyway-7.15.0 下清空 config/flyway.conf
```code=
cd ../..
echo > conf/flyway.conf
```
6. 修改 config/flyway.conf (注意修正連線ip,user,password等)
```code=
vim config/flyway.conf
==========
flyway.conf 說明
## 連線
flyway.url=jdbc:mysql://127.0.0.1:3306?createDatabaseIfNotExist=true&useSSL=false
## 使用者
flyway.user=root
## 密碼
flyway.password=123456
## 檔案位置 
flyway.locations=filesystem:./sql/**/**/flyway/wc
## baseline/clean 指令會建立或清除的 database
flyway.schemas=flyway_new
## 歷程 table 所屬 database
flyway.defaultSchema=flyway_new
## 歷程 table
flyway.table=flyway_new_history
## 是否禁止 clean 指令 (若真有需求將此參數註解並執行 clean，後續記得添加回來)
flyway.cleanDisabled=true
## 啟用版本從何開始
flyway.baselineVersion=4.0.3
```
7. 在 flyway-7.15.0 下執行指令確保連線可行，並確認執行內容
```code=
./flyway info
```
8. 執行 baseline 並確認執行版本是否正確
```code=
./flyway baseline
./flyway info
```
9. 連線至新 DB 確認是否有多 flyway_new 的 database，以確認 flyway 連線正確
10. 以上確認無誤後建立資料庫
```code=
./flyway migrate
```
11. 完成後檢查新 DB 與 flyway 執行結果
```code=
./flyway info
```

:::danger
若執行過程出錯請中斷並修正檔案後重新 migrate
中斷指令: ./flyway repair
:::