sql >> データベース >  >> RDS >> PostgreSQL

mavenstartpostgresサーバー

    PostgreSQLはメモリ内の埋め込み可能なサーバーではありません。ライブラリとしてロードして実行するだけでは不十分です。

    次の目的でテストハーネス制御コードが必要になります:

    • initdb 一時的なデータディレクトリ

    • postgresql.confを編集します 必要に応じて、行を追加するか、include_dirを有効にします それにファイルをドロップします。些細な設定のみが必要な場合は、この手順をスキップできる可能性があります。 portのようなもの 環境変数を介して設定でき、他の多くは-cで設定できます サーバー起動コマンドへのフラグ。

    • 使用するランダムなポート番号を生成する

    • サーバーを起動します-postgres -D the_datadirを実行します JavaのProcessを使用する新しいサーバーインスタンス 管理。 -cを使用してカスタム構成値を渡すことができます また、動作を制御するために環境変数を設定することもできます。

    • JDBCとCREATE DATABASEを介して接続します 次に、テストセットアップを実行します

    • テストを実行する

    • 起動したプロセスを強制終了してサーバーを停止します。

    • datadirを削除します

    適切な一時ディレクトリ処理、クリーンでない出口でのクリーンアップ(Pgサーバーを強制終了し、例外でdatadirを削除する)などを使用して、クラスでプロセス管理を実行する必要があります。

    これのために借りる缶詰のテストハーネスコードが見つからない場合、私は驚かれることでしょう。 PgJDBCにいくつか追加して、ドライバーにバンドルする必要があるのでしょうか。何か良いものを見つけたり、何か良いものを書いたりした場合は、この回答にコメントしてpingしてください。PgJDBCのユーティリティクラスとして含めることを検討します。

    とはいえ、代わりに、サーバー上ですでに実行されている既存のPostgreSQLインスタンスで新しく作成されたテストデータベースでテストを実行する方がはるかに一般的です。 PostgreSQLのユーザー名/パスワード/ホスト/ポート/データベースを使用してテストスイートを構成するだけです(またはpostgresに接続させます) データベースとCREATE およびDROP データベース)。結局のところ、いくつかの構成が常に必要になります。PostgreSQLをインストールまたはコンパイルし、バイナリがPATHにあることを確認します。 、など。

    もう1つのオプションは、AmazonRDSを使用することです。AWSRDSAPIを使用して新しいPostgreSQLインスタンスを起動し、それをテストに使用します。これは、セットアップ時間と最小実行時間のためにテストを長時間実行しない限り、おそらく実用的ではありませんが、Herokuの同様のサービスと同様に、別のオプションです。



    1. mysqlで一度に複数のテーブルを変更するにはどうすればよいですか?

    2. MySQL全文検索、MATCHに対して誤った引数を取得するのはなぜですか

    3. 2つのODBCデータソースでのOracle®異種サービスの使用

    4. jQuery UIソート可能、次にデータベースに順序を書き込む