0

テストを実行するときに、メモリ内SGBDとしてSpring、Maven、およびHibernateでPostgreSQLを使用しようとしています。

私が得ているエラーは、データベースが存在しないということです。

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (FATAL: database "test" does not exist)

PostgreSQLを指定して、休止状態を介してメモリ内に独自のテーブルを作成する方法、またはデータベースを構築するSQLクエリを提供する方法はありますか?

HYPERSONIC_IN_MEMORYで使用し、正常に機能したいくつかのプロパティを次に示します。同じものをPostgreSQLに適用するにはどうすればよいですか?

<properties>
    <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
    <property name="hibernate.hbm2ddl.auto" value="create" />
</properties>

PostgreSQLを使用するのは初めてであり、助けていただければ幸いです。

4

1 に答える 1

2

存在しないデータベースに接続する場合は、PostgreSQLにデータベースを作成してもらいたいようです。それはそれをサポートしていません。

はい、「データベースを構築するSQLクエリをフィードする」ことはできますが、適切なCREATE DATABASEコマンドを発行するには、データベースに接続する必要があります。

単体テストフレームワークでプレクラスまたはスクリプトを使用して、PostgreSQLへのJDBC接続を確立し、テストデータベースを作成してみてください。または、単体テストフレームワークの機能として、またはHibernateの機能リクエストとしてリクエストします。事前の議論については、このフォーラムスレッドを参照してください。

一般的なアドバイスは、ORMに既存のスキーマを更新させるか、新しいスキーマを作成しないか、事前テストコードを使用してDBを削除して再作成することです。

「RAM内」の部分については...速度が懸念される場合は、高速テストのためにPostgreSQLの最適化を参照してください。

于 2012-11-14T00:48:38.360 に答える