2017-08-30 5 views
1

私はこのように、分離されたファイルやサブフォルダ内など各プロシージャ、ファンクション、テーブル用のスクリプトを入れたいフライウェイ、 ととバージョン管理の私のデータ・ベースを置くしようとしている:Flywayの異なるファイルで各スクリプトをどのように分割するのですか?

enter image description here

が、私はこのエラーを取得しています:

org.flywaydb.core.api.FlywayException: Found more than one migration with version 1.0 
Offenders: 
-> C:\...\target\classes\db\migration\views\asuntoConsultar\V1.0__asuntoConsultar.sql (SQL) 
-> C:\...\target\classes\db\migration\tables\asuntos\V1.0__asuntos.sql (SQL) 

は、この構造を理解するためにフライウェイを設定する方法はありますか?

答えて

1

フライウェイはこのディレクトリ構造を使用できます。スクリプトのバージョン番号がすべてディレクトリで一意であることを確認する必要があります。これは、Flywayがすべてのスクリプトのlocationsパラメータを検索し、バージョン番号に基づいてスクリプトを実行する順序を決定するためです。デバッグをオンにして実行すると、これがどのように動作するかを確認するのに役立ちます。

また、OutOfOrderオプションを調べて、フォルダ間のバージョン番号を厳密に把握する必要がない場合もあります。

+0

@ AlfredoMここで、あなたがフライウェイのバージョン番号システムを悪用している点を強調しましょう。名前に 'V1.0__'を含む複数のファイルが存在しないようにする必要があります(デフォルトで)。 **フォルダのネストはデフォルトでフライウェイには関係ありません**。 Flywayはまず、ネストされたフォルダ内を含め、見た目の可能性のある場所にあるすべてのスクリプトを集めます。次に、Flywayは各ファイルの名前を解析して、ソフトウェア業界で一般的に使用される* major.minor.micro.nano *形式の番号を作成します。そのバージョン番号は、デフォルトでスクリプトの実行順序を決定します。 –

+0

@BasilBourqueオリジナルのポスターは、ファイルのバージョン番号が一意である限り、そのフォルダ構造を使用することができます。 –

+0

うん、はい、それは私が強調しようとしていたポイントです。オリジナルのポスターは、フォルダ階層が意味のあるものであると考えています。あなたと私はどちらも、その考え方を**フォルダ番号ではなくバージョン番号に焦点を当て**する方向を変えようとしています**。 –

関連する問題