2011-01-02 10 views
0

私はdjangoを初めて使っています。私の最初のプロジェクトは私のブログです。私はpydevを使用するdjango開発者が、通常、リモートホスティングサーバーと同期してサイトを更新するのだろうか?Pydev + Djangoワークフロー。ローカル(テスト)+リモート同期。 djangoでgitを使う

私はまた、gitとdjangoプロジェクトの使い方をどのように組み合わせるのですか?私はちょうどプロジェクト全体のリポジトリを作るべきですか?

答えて

1

私の会社では、プロジェクトごとにPYTHONPATHに入れられたDjangoソースを含め、各プロジェクトのgitリポジトリ全体が用意されており、Djangoバージョンのプロジェクトに依存しています。我々はPYTHONPATHの両方で/と/ジャンゴ-libが含まれ、django-libとして

/.git 
/projectname/app1 
/projectname/app2 
/projectname/manage.py 
/django-lib/django/... 

はPythonモジュールではありません:フォルダ構造は次のようなものです。プロジェクトが大きくなっている場合は、アプリでgit submodulesを使用することを検討してください。

開発者をサポートするためにいくつかのサーバーもセットアップしました。開発者が変更をコミットする前にローカルのmanage.pyが使用しているものとは少し異なる場合がある、実際のサーバーでのテストを可能にするWSGI付きのApacheを含むテストと中央テストデータベースを実行するテストサーバーがあります。

テストサーバーは、gitリポジトリのmasterブランチで更新されます。すべての開発者がSSH経由でサーバーにログインさせずにこれを行うことを許可するスクリプトをいくつか作成しましたが、これはリリース前の段階です。リリース後、そのサーバーはステージングサーバーになり、プロダクションサーバーと同じようにすべてのスクリプトが削除されます。

すべての開発者は、いくつかのテストデータを含む中央テストデータベースと確実に通信するためのローカルプロジェクトをセットアップしています。私自身が変更をコマンドラインからプッシュしますが、EGitも使用できます。

リリースがリリースされたら、「リリース」(明らかに)と呼ばれる別のブランチに配置し、運用サーバーはそのブランチからのみプルします。これはSSH経由で行われますが、サーバーの設定がどのようになっているかわからないので、最後のステップは完全にあなた次第です。

これがあなたを少し助けてくれることを願っています。私はこれが最高のワークフローであるとは言いませんが、それは私たちのために働き、あなたは何があなたのために働くかを理解する必要があります。

+0

ありがとうございました!私はこれがどういう仕組みかほとんど考え出しました。ちょっとだけもっとgitについて読む必要があります。 – creitve

1

経験豊富なDjango開発者は、あなたのDjangoプロジェクト(Django自体を含む)に必要なすべてのPythonパッケージをpip(またはdistribute)およびvirtualenvで処理します。

は個人的に、私は私のプロジェクトのgitリポジトリに保つすべてのピップによって生成された隔離要件リストの束である:

. ~/Dev/environs/$PROJECT_NAME/bin/activate 
pip freeze > ./docs/requirements/main.list 

私はほとんどのDjangoの開発者は、私が使用ファブリック、に精通しているであろう、かなり確信しています:私たちのproduから引っ張って私たちの中央リポジトリ、

  • にプッシュ

    • gitのローカルな相互作用を合理化し、
    • 関連サーバーのwsgiに触れて
    • あなたはsshターミナルセッションを使用しているかもしれません。私はそれが仕事や私たちの目的に合わせ作るためによそのDjangoアプリケーションを変更する必要があるような場合のために

    、I:githubの上

    • フォーク、それを、より
    • クローン私のフォークレポ
    • 変更
    • 自分のレポ
    • にプッシュそれをを作成し、オリジナルのレポの所有者
    • 0123にマージリクエストを提供

    この方法では、元のアプリケーション所有者が独自のリポジトリを更新するまで、pip要件リストを引き続き使用できるリポジトリがあります。

  • 関連する問題