0

Djangoアプリの開発サイトとライブサイトがあります。多くのフロントエンドコピーおよびその他のオブジェクトの詳細がDBに保存されます。逆に、多くのクライアントデータもDBに保存されます。開発サイトを準備してから、新しいコピーとオブジェクトをライブサーバーにコピーする最も効率的な方法は何ですか?

最も簡単なのは、変更可能な開発サイトのデータをライブサイトで最新の状態に保ち、開発サイトを更新してから、ライブサイトにデータダンプを実行することです。しかし、これが起こっている間に誰かがライブサイトを更新した場合はどうなりますか?それらの更新は上書きされます。

管理者リストビューでエントリを「チェック」し、「コピー」を押してから、どういうわけかこれらを新しいサイトに貼り付けることができるDjangoアプリはありますか?

または、この一般的なシナリオで人々が使用する他のパターンは何ですか?

これは、GITを使用するのと少し似ています。つまり、マスターブランチを作成し、ライブサイトの反復ごとにブランチを作成し、開発サイトで作業しながらライブサイトでホットフィックスを作成します。修正プログラムを開発サイトにマージできます。データをマージするにはどうすればよいですか?

4

2 に答える 2

0

正しく取得できるかどうかわかりません。間違っているかどうか教えてください。基本的に、本番環境と開発インスタンスの両方で(同じ)データに変更を加えたいですか?

私見それは多くの理由で一般的に良い解決策ではありません、それらの1つはあなたが言及したこの壊れやすい必要性です。私にとって、これに取り組む最善の方法は、実際には、2つの環境を可能な限り(データに関して)切り離しておくことです。

絶対に避けなければならない部分、IMHOは、この最終的な開発->本番のマージです。他の方向(prodからdev)に転送する必要性をもう少しよく理解できます。ここで2つの一般的なケースを見ることができます:

  • devに同じデータが必要です。データ関連のバグを再現しようとします。その場合は、単に本番データベースをダンプして開発者にロードしてみませんか。マシーン ?私見、この開発者。データベースは常に「ワイプ可能」であると見なす必要があります。
  • 実稼働サイトには、開発でも必要となるほど一般的な「初期」データがあります(「性別」テーブルの男性/女性エントリなど)。その場合、フィクスチャの使用を想像できます。

データフローと環境について考えるときは、おそらくSouthも確認する必要があります。データ移行は、非常に便利なツールです。

お役に立てれば !

于 2012-08-21T11:33:52.890 に答える
0

管理者リスト ビューでエントリを「チェック」し、「コピー」を押してから、これらを新しいサイトに貼り付けることができる Django アプリはありますか?

私が知っているわけではありません。しかし、それなりの努力をすれば、そのようなアプリを作成できると思います。次のことをお勧めします。

  • 変更リスト ビューには管理アクションを使用します。そうすれば、複数のオブジェクトを開発システムからライブ システムに公開または転送できます。詳細については、ドキュメントを参照してください
  • 1 つのオブジェクトの変更ビューに別のボタンを追加します。たぶん「ライブサイトに公開」。
  • 「保存してライブ サイトに公開する」のように、保存と公開を 1 ステップで行う変更ビューにさらに別のボタンを追加します。

変更フォームにボタンを追加するには、対応するテンプレートをオーバーライドします。

http://code.djangoproject.com/svn/django/trunk/django/contrib/admin/templates/admin/change_form.html

ブロック「submit_buttons_bottom」を次のようにオーバーライドします

{% block submit_buttons_bottom %}
  {{ block.super }}
  <!-- your buttons here -->
{% endblock %}

できれば、オブジェクトを dev から live システムに転送する機能を 1 つだけ作成することをお勧めします。この関数は、3 つのユース ケースすべてで使用します。

しかし、落とし穴があります!

ある Django インスタンスから別のインスタンスに 1 つのオブジェクトをコピーするのはかなり難しい場合があります。特に、それらのオブジェクトが他のオブジェクトと関係を持っている場合、そのオブジェクトはさらに別のオブジェクトと関係を持っている可能性があります。参照整合性を維持することは悪夢です。多分誰かがそれに対する良い解決策を持っています。

于 2012-08-21T13:32:47.920 に答える