2016-06-29 1 views
4

は、私はこの質問をDatabase Administrators 'セクションや、ここに掲載するか否かをわからないよ、そうアドバイスしてください。Djangoの "dumpdata"またはPostgresの "pg_dump"ですか?私はそれが間違って得た場合

は、私はあまり変化しないDjangoのベースのウェブサイトを持っています。 python manage.py dumpdata --all --indent=2 > backup.jsonを使用し、再デプロイする必要がある場合、またはdbが破損した場合はloaddataでデータをリロードします。 (私はauthcontent_typesを除外しないときに発生した整合性のエラーについて承知している)

私はバックエンドでPostgreSQLを使用していますので、私が代わりにpg_dumpを使用するために、それは「ベストプラクティス」または「賢く」であり、何か問題が起きた場合、または再配備が必要な場合は、pg_restore

したがってdumpdataは、選択したアプリケーション(および/またはモデル)に関連付けられたすべてのデータをダンプし、pg_dumpはdbのフルダンプを実行します。これは同じことですか、私が忘れてしまった根本的な違いがありますか(私はDBAの経験がありません)。

私はオプションのために行くとなぜか?

答えて

1

それはあなたの代わりにdumpdataののpg_dumpを使用するためのベストプラクティスと賢明でもあります。 pg_dumpの方が高速ですが、出力はよりコンパクトで(特に-Fcオプションを指定すると)、ロードデータよりも速くpg_restoreでロードすることができます。最後に、pg_dump/pg_restoreでは、あなたが話した完全性エラーは発生しません。

は、一般的に、データベース全体をダンプするために使用されるのpg_dumpが-tオプションでは、著名時間

+0

1つのまたはいくつかのテーブルをダンプすることができます。私はすでに、毎時pg_dumpを使ってバックアップするスクリプトを書いています。私のDBは非常に小さいので(〜30MB)、私は大きなパフォーマンスの違いに気づいていませんでした。あなたの答えをありがとう。 –

+1

あなたは定期的にダンピングしている場合は、WALのアーカイブを使用することをお勧めします。 https://www.postgresql.org/docs/9.2/static/continuous-archiving.html – e4c5

+0

リンクをありがとう。私は、PostgreSQLが継続的なバックアップシステムを持っていることを知らなかった。現時点では、私は 'pg_dump'を使って、私はコミットし、変更をプライベートGitHubリポジトリにプッシュし、増分変更を確実にします。ある時点でデータを復元する能力もあり、最悪の場合のシナリオでは1時間の作業が失われます。私はまだWALの使用を検討すべきですか? WALを実装するのは時間の問題ですが、それは価値がありますか? 'pg_dump'と' git'と比べて少し複雑です。アドバイスをいただければ幸いです。 –

関連する問題