2010-12-15 13 views
0

CucumberをCapybaraで使用する場合、SQLデータダンプからテストデータベースデータをロードする必要があります。 残念ながら、シナリオごとに10秒かかるため、テストが遅くなります。 http://wiki.postgresql.org/wiki/Binary_Replication_Tutorial#How_to_ReplicateSQLデータベースからのデータベースの復元が遅く、バイナリレプリケーションをテストデータベースにロールバックすることを検討します

あなたはバイナリレプリケーションは、SQLファイルを使用して、その後速くなると思います。

私のようなものを発見しましたか?

リストアを速くするためにできることはありますか(構造ではなくデータのみを復元します)。

お試しにどのようなアプローチをお勧めしますか?あなたがテストシナリオを準備するには、「テンプレート」データベース(例えばmydb_template)

にあなたのテストデータを置くしようとすることができ

答えて

2

、あなたは単にDROP DATABASE mydbを使用してデータベースを削除し、テンプレートに基づいて作成し直す:CREATE DATABASE mydb TEMPLATE = mydb_template;

もちろん、接続する必要があります。 テンプレート0またはポストグレックスデータベースmydbをドロップできるようにするためです。

これは、ダンプのインポートよりも速いと思います。

このアプローチに関するPGメーリングリストと、9.0で修正された大きな「テンプレート」に関するいくつかのパフォーマンス上の問題についての議論を思い出してください。

+0

ええ、テンプレートのcreatedbのパフォーマンスは、操作の最後にすべてのfsyncingを実行することで9.0で大幅にスピードアップしました。データベースの作成は、10秒から15秒かかってから数秒になりました(テンプレートdbが巨大ではないと仮定して)。 –

0

(私だけのデータではなく、構造を復元)

COPYだけのデータをインポートするため、常に最速です。データベース全体の復元に関するその他の回答

関連する問題