私はdjangoを初めて使っています。私の最初のプロジェクトは私のブログです。私はpydevを使用するdjango開発者が、通常、リモートホスティングサーバーと同期してサイトを更新するのだろうか?Pydev + Djangoワークフロー。ローカル(テスト)+リモート同期。 djangoでgitを使う
私はまた、gitとdjangoプロジェクトの使い方をどのように組み合わせるのですか?私はちょうどプロジェクト全体のリポジトリを作るべきですか?
私はdjangoを初めて使っています。私の最初のプロジェクトは私のブログです。私はpydevを使用するdjango開発者が、通常、リモートホスティングサーバーと同期してサイトを更新するのだろうか?Pydev + Djangoワークフロー。ローカル(テスト)+リモート同期。 djangoでgitを使う
私はまた、gitとdjangoプロジェクトの使い方をどのように組み合わせるのですか?私はちょうどプロジェクト全体のリポジトリを作るべきですか?
私の会社では、プロジェクトごとに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経由で行われますが、サーバーの設定がどのようになっているかわからないので、最後のステップは完全にあなた次第です。
これがあなたを少し助けてくれることを願っています。私はこれが最高のワークフローであるとは言いませんが、それは私たちのために働き、あなたは何があなたのために働くかを理解する必要があります。
経験豊富なDjango開発者は、あなたのDjangoプロジェクト(Django自体を含む)に必要なすべてのPythonパッケージをpip(またはdistribute)およびvirtualenvで処理します。
は個人的に、私は私のプロジェクトのgitリポジトリに保つすべてのピップによって生成された隔離要件リストの束である:
. ~/Dev/environs/$PROJECT_NAME/bin/activate
pip freeze > ./docs/requirements/main.list
私はほとんどのDjangoの開発者は、私が使用ファブリック、に精通しているであろう、かなり確信しています:私たちのproduから引っ張って私たちの中央リポジトリ、
、I:githubの上
この方法では、元のアプリケーション所有者が独自のリポジトリを更新するまで、pip要件リストを引き続き使用できるリポジトリがあります。
ありがとうございました!私はこれがどういう仕組みかほとんど考え出しました。ちょっとだけもっとgitについて読む必要があります。 – creitve