flyway簡単に使う

1843 ワード

flywayはデータベース移行の利器として、以下で簡単にその使用を説明します.この例はmavenプラグインの形式でflywayを統合します.
1.pom.xml構成
  
  org.flywaydb  
 flyway-maven-plugin  
 6.2.3  
  
    
 generate-sources  
  
 migrate  
  
  
   
  
  com.mysql.cj.jdbc.Driver  
 jdbc:mysql://xxxxx:3306/xxx?useUnicode=true  
 xxxx  
 xxxxx  
    
    
  
 
 

2.スクリプトパス
  • スクリプトのデフォルトパスはclasspath:/db/migration
  • です.
    3.スクリプトの名前付け
  • V1__スクリプト_説明.sql
  • ここで、大文字Vは固定接頭辞であり、1はバージョン番号を表し、1.1,1.2などの小さなバージョンの書き方を採用することができる.バージョン番号の後ろに二重下線_、スクリプトの説明は後述しますが、スクリプトの説明の間には単一の下線を引くことができます.区切りの一番後ろにはsql接尾辞があります.
    4.使用原則
  • スクリプトがflywayで実行されると、スクリプトは変更できません.sqlを追加する必要がある場合は、sqlを新しいバージョンのスクリプトに入れるしかありません.
  • 例えば、V 1_スクリプト1.sqlはすでに実行されており、新しいsqlはV 1バージョン番号より大きいスクリプトにしか入れられません.例えば、V 1.2_スクリプト2.sqlまたはV 2_スクリプト2.sql.
  • flywayが最初に実行するとflawayが生成されます.schema_historyテーブルは移行の記録を維持します.

  • 現在の最新バージョン番号を表すバージョンフィールドがあり、次回の実行時にflywayが現在のバージョンよりも大きなスクリプトファイルを自動的に検索して実行します.
  • flaway_schema_historyには、実行したスクリプトに変化があるかどうかを確認するchecksumフィールドがあります.
  • V 1_の場合スクリプト.sql、すでに実行して、それから中の内容を修正して、再びflywayを実行するとエラーが表示されます.これは、いったん実行したスクリプトが修正しない理由です.
    4プラグインコマンドの詳細
    flyway:clean
    データベースのすべてのテーブルを明確にします(慎重に!!!)
    flyway:baseline
    デフォルトでは、データベースにテーブルがある場合、flywayを最初に実行するとエラーが表示されます.baselineを先に実行する必要があります.flywayは、現在のテーブルのバージョンが1であることを示すversion=1のレコードを生成します.スクリプトのバージョン番号は1より大きいものからのみ命名できます
    flyway:mygrate
    データベースの移行、デフォルトではflawayよりバージョン番号が検索されます.schema_history#vesionの大きなスクリプトは、複数ある場合は昇順に実行されます.スクリプトの移行が完了するたびにflaway_schema_historyは履歴を挿入します.