Flyway CLIの助けを借りて移行しようとしているので、私の問題は比較的簡単です。
ここでの問題は、システムが移行ファイルを間違った順序でソートし、新しいファイルが最新バージョンと見なされないことです。これらのファイルはPOMと同じバージョンを持っているので、どのバージョンが変更されたかを知ることができます。
現在のバージョンは1.4.11ですが、以前のバージョンと見なされます。
V1_4_11.001
比較しなければならないV1_4_7.001
なぜそんなことですか? outOfOrderフラグを使用せずにどのように問題を解決できますか?私のMacBookには、同じファイルが正しい順序であります。
-rw-r--r-- 1 501 staff 226 Oct 18 16:02 V1_1_0__patch.sql
-rw-r--r-- 1 501 staff 3174 Oct 18 16:02 V1_2_0__patch.sql
-rw-r--r-- 1 501 staff 1774 Oct 18 16:02 V1_2_2__patch.sql
-rw-r--r-- 1 501 staff 130 Oct 18 16:02 V1_4_0.001__merge_skill_level_godlike.sql
-rw-r--r-- 1 501 staff 111 Oct 18 16:02 V1_4_0.002__modify_publications.sql
-rw-r--r-- 1 501 staff 2149 Oct 18 16:02 V1_4_0.003__create_v_competence_by_experience.sql
-rw-r--r-- 1 501 staff 55 Oct 18 16:02 V1_4_11.001__add_profile_updated_on.sql // Newest version
-rw-r--r-- 1 501 staff 712 Oct 18 16:02 V1_4_7.001__add_duration.sql
答え1
問題は、ls
出力を次のように並べ替えることです。「事前」ソートファイル名。このシーケンスでは、最初のものが最後に来ますV1_4_11
。V1_4_1
V1_4_2
-v
Debian を使用しているので、ls
必要なアクションを実行するフラグがあります。
-v
テキスト内の(バージョン)番号の自然な順序
たとえば、あなたの例に基づいて空のテキストファイルを生成する場合、「一般」出力順序は次のようになります。
myuser@myhost:~$ ls -l
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_1_0__patch.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_2_0__patch.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_2_2__patch.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_0.001__merge_skill_level_godlike.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_0.002__modify_publications.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_0.003__create_v_competence_by_experience.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_11.001__add_profile_updated_on.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_7.001__add_duration.sql
そのフラグを使用すると、-v
次のような結果が得られます。
myuser@myhost:~$ ls -lv
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_1_0__patch.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_2_0__patch.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_2_2__patch.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_0.001__merge_skill_level_godlike.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_0.002__modify_publications.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_0.003__create_v_competence_by_experience.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_7.001__add_duration.sql
-rw-r--r-- 1 myuser mygroup 0 Okt 19 00:47 V1_4_11.001__add_profile_updated_on.sql
しかし、、これは実際にはls
コマンド出力ファイルに過ぎず、ファイルシステム内のファイルの内部構成方法とは何の関係もありません。また、試してはいけません。出力の解析ls
最新のファイルを識別することが最終目標である場合は、他の方法もあります(ただし、使用しているシェルと正確に実行したい操作によって異なります)。