1

Django サイトの設定はかなり単純です。

  • ローカル開発コピー
  • プライベート BitBucket git リポジトリのコピー
  • サーバーの git からのクローン
  • これをまとめるための生地ファイル

各サイトについて、私が git で維持していない 2 つのものがあります: /media/(人々がライブ サイトにアップロードするもので、通常はデータベースにリンクされているもの) とデータベース (sqlite3 ファイル) です。データ/メディアのローカルコピーでテスト作業をアップロードしたくないので、これを git から除外します。必要に応じて、手動でアップロードします。

私はかなり新しいですgit。Bazaar を直接のローカル→本番交換で使用していましたが、現在は BitBucket が中間にあり、オフサイトのバックアップに使用したいと考えています。

ほとんどの人がそう言うのを聞くとひるむことは知っていますが、それはクライアントに BB リポジトリへのアクセスを許可できることを意味します。新しいサーバーが稼働しています。私自身のパラノイアのために、彼らは本番サーバーにまったくアクセスできず、他のクライアントと共有しています。

質問したことで嫌われても仕方ないけど、3つ質問がある。

  1. 私が聞くつもりはないと仮定すると、レポ内で一方向にバックアップを保存する最良の方法は何ですか? バックアップの作成 (新しい tar の作成) をスクリプト化できますが、それを git のどこに保存すればよいですか?

  2. それらを自分のローカル ブランチにダウンロードしないようにすることはできますか? 世界の終わりではありませんが、これらはすでにバックアップです。すべてのレポにコピーは必要ありません。

  3. また、たとえば 7 日間でバックアップをローテーションしたい場合、古いバックアップを完全にクリーンアップする最善の方法は何ですか? ライブ ブランチからバックアップを削除した後でも、git は古いバックアップのコピーを自然に保持していると思います。それを防ぐ方法が必要です。

私は別の解決策を聞くことにオープンですが、git が私の邪悪な入札にねじれることができるかどうかを知りたいと思っています。それ以外は非常に用途が広いです。

4

1 に答える 1

0

'1' と '2' は半分解決可能です。あなたはビットバケットを使っていますよね?バックアップ用の新しいレポを作成するだけです。問題は解決し、必要な場所にクローンを作成するだけで済みます。「3」は、やりたいことに対して git が適切なテクノロジーではない可能性があることを示しています。

定義上、git はコミット履歴内のすべてのファイルの以前のすべての状態に到達する必要があります。...のようなコマンドで回避できますfilter-branchが、なぜですか? Git は、過去の状態を保存するためにあらゆる手段を講じています。それがその精神です。git リポジトリで 7 日ごとにバックアップを消去するスクリプトを作成するのは、問題により適したテクノロジを使用するよりもはるかに面倒です。Amazon の無料利用枠の S3 バケットはどうですか? 適切に構成された IAM ポリシーを使用してクライアントにアクセスを許可すると、ソリューション全体をわずかな年間料金で利用できます。そしてS3です。11 9 の整合性があります。サイトが非常に巨大でない限り、わずかな費用で数か月のバックアップを保持できます。

于 2012-09-14T12:45:50.393 に答える