DB MigrationのためにFlyway
をテストしたところ、その機能とワークフローには驚いています。Gradle:環境やその他のプロパティに応じて、プラグインサブタスクを実行不可能にマークしてください。
Flyway
でも、アクセスしているスキーマからすべてのテーブルとプロシージャを効果的に削除するclean
タスクを実行できます。
このサブタスクは、開発環境では実行可能であるが、実稼働環境では実行できないようにする必要があります。誤ってその意味を誤解し、誤って本番DBを強制終了する可能性があります。
プラグインのサブタスクを無効にする(または単に削除する)ことはできますか?私のような何かを行うことができます。
flywayClean {
enabled = project.hasProperty('devenv')
if(!enabled) {
throw new StopExecutionException("Disabled on production servers.")
}
}
をしかし残念ながら、これは完了することから、ビルドを停止します。理想的には、タスクが特に別のタスクまたはコマンドラインから実行されている場合は、のような例外をスローしたいと思います。
Gradleでこれを行うことはできますか?
EDIT:
はまもなく質問を投稿した後、私はflyway
設定オプションはまた、私が望んで正確に何ができるcleanDisabled
オプションが含まれていることに気づきました。しかし、質問を削除する必要はありません:プラグイン自体にこのようなオプションがない場合、これは一般的に可能ですか?