0

私は初めてのJavaバックエンドシステムにSQLデータベース(PostgreSQL)を統合しています。サーバーサイドアプリケーションのSQLデータベースとテーブルを初期化する方法は?

私のジレンマは、アプリケーションがデータベースとテーブルを単独で作成した場合、またはテーブルで初期化された必要なデータベースが利用可能になると仮定する必要があるかどうかです。

アプリケーションがデータベースを単独で管理してはならない場合は、開発者のマシンでデータベースを再現するための最良の方法は何ですか(実際のデータベースとローカルで統合テストを実行したいですか)。

+0

アプリケーションがデータベースを作成/初期化しない場合は、他の誰かが行う必要があります。あなたのアプリがこれを心配するなら、一貫した振る舞いを持たせることができます。 –

+1

[liquibase](http://www.liquibase.org/)または[FlyWay](https://flywaydb.org/)をご覧ください – Max

+0

通常、アプリケーションでデータベースを管理することはできません。あなたがpsotgresから離れて切り換えることを決心した場合、再作業は少なくなります。他の人が実行できるようにSQLスクリプトを提供する方が簡単です。より良い - ドッカー/迷彩画像を提供する。他の人はpostgresをインストールすることについて心配する必要はありません。 – Vineet

答えて

0

私は@MaxとしてFlyWayを使用して終了しました。

セットアップは非常に簡単で直感的でした。私は当時のデフォルト設定を使用しました。

開発マシンでの統合テストの設定は簡単でした。

私が特に気に入らないのは、FlyWayを使用してテスト間でデータベースをクリーンアップするのは、テーブルをクリーンアップするだけでなくスキーム全体が消去されるため、非常に遅いということです。

これは今のところ大きな問題ではありません(現在100テスト程度あります)。将来必要に応じて最適化するのは難しくありません。

関連する問題