SQLの実行順序に問題があります。
1つのディレクトリの下のテーブルごとに1つのSQLスクリプトファイルがあります。例:ディレクトリc:\SqlScriptsにuser.sqlとrole.sqlがあります。これらのSQLファイルを実行するためにSQLMavenプラグインを使用しています。
ロールテーブルにはユーザーテーブルへのForiegnキーがあり、プラグインがuser.sqlの前にrole.sqlを実行しようとしているため、実行は失敗します。c:\ SqlScripts * .sqlとして指定しているため、orderfile属性を使用できません。
この問題を解決するにはどうすればよいですか?
私は2つの解決策を見ます:
すべてのスクリプトを作成順に1つのファイルにマージします。ロールを作成するスクリプトは、ユーザーを作成するスクリプトの後にあります。
*ワイルドカードを削除し、実行順に属性内の各ファイルを指定します。
実行順序に従ってファイルの名前に番号を付けます(例:1_user.sql、2_role.sql)。「昇順」のorderfile属性を使用します(順序が適用されない可能性があるため、これが機能するかどうかはわかりません)。
よりエレガントなソリューションはありますか?