[解決済み] PostgreSQLをメモリのみで動作させる
質問
私は、私が書いたユニットテストごとに、メモリ上だけで動作する小さなPostgreSQLデータベースを実行したいと思っています。例えば
@Before
void setUp() {
String port = runPostgresOnRandomPort();
connectTo("postgres://localhost:"+port+"/in_memory_db");
// ...
}
理想的には、ユニットテストが使用する1つのpostgresの実行ファイルをバージョンコントロールにチェックインすることです。
次のようなものです。
HSQL
のようなものですが、postgresのためのものです。どうすればいいのでしょうか?
そのような Postgres のバージョンをどこで手に入れることができるのでしょうか?どのように私はディスクを使用しないように指示することができますか?
どのように解決するのですか?
これはPostgresでは不可能です。HSQLDBやMySQLのようなインプロセス/インメモリエンジンを提供していないのです。
自己充足的な環境を作りたいのであれば ができます。 はPostgresのバイナリをSVNに置くことができます(ただし、単一の実行ファイル以上のものです)。
を実行する必要があります。 initdb を実行してテスト用データベースをセットアップする必要があります。これはバッチファイルから、あるいはRuntime.exec()を使って行うことができます。しかし、initdbは高速なものではないことに注意してください。テストのたびに initdb を実行したいとは思わないでしょう。しかし、テストスイートの前にこれを実行することは可能かもしれません。
しかし、これは可能ですが、テストを実行する前にテストデータベースを単純に再作成する専用のPostgresインストールを持つことをお勧めします。
テンプレートデータベースを使用することでテストデータベースを再作成することができ、非常に高速に作成することができます (a ロット 各テスト実行のために initdb を実行するよりも速い)
関連
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] どのバージョンのPostgreSQLを使用していますか?
-
[解決済み] PostgreSQLでデータベースのコピーを作成する
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
-
[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。
-
[解決済み] PostgreSQL公式Dockerイメージの設定ファイルをカスタマイズする方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLのJSONBのマッチングと交差の問題について
-
PostgreSQLでバッファキャッシュにデータを読み込む方法
-
GROUP BY句での定数使用に関するPostgreSQLの特別な制限について説明します。
-
PostgreSQLのデータベースでLIKE文の効率を確保する方法(推奨)
-
[解決済み] コマンドライン引数でPostgreSQLの.sqlファイルを実行する
-
[解決済み] postgres の主キー配列が同期しなくなったときにリセットする方法は?
-
[解決済み】高速テストのためのPostgreSQLの最適化
-
[解決済み】PostgreSQLがインデックス付きカラムに対してシーケンシャルスキャンを実行するのはなぜですか?
-
[解決済み] PostgreSQLでカラムが存在しない場合、どのように追加しますか?
-
[解決済み] PostgreSQL の全コンテンツを削除する