エンタープライズ アプリケーションのモジュラー システム アーキテクチャに取り組んでいるときに、データベースの初期化でいくつかの問題に遭遇しました。基本エンティティと基本構成を提供するコア ライブラリがあります。このコアの上に、いくつかのモジュールが構築されます。これらはプラグイン可能で、独自のエンティティと構成を持つことができます。いくつかの特徴:
- システム プロパティ、リソースバンドルなどの構成はすべてデータベースに保存されます。
- JPA は、システム データベースを独立させるために使用されます。
- システムは Java SE で動作します
すべてのモジュールは独自のテーブルを持ち込むことができますが、コア プロパティ テーブルまたはコア リソースバンドル テーブルへの入力が必要になる場合もあります。したがって、どういうわけか、データベースの DDL および DML 初期化を実行するメカニズムが必要です。いくつかのオプション:
- 簡単な SQL スクリプトを作成します。欠点は、データベースに依存しない必要があることであり、おそらくこれは開発者にとって最も使いやすいものではありません。DB diffツールでそれらを生成できない限り?
- Javaクラスを使用してJPQL経由で初期化しますか?
- 構成をファイルに保存しますか? これにより、構成 DML の多く (すべてではない) が回避されます。
- liquibase のようなツールを使用しますか?
この(または同様の)問題のベストプラクティスは何ですか?