0

私は現在、いくつかの Django アプリを必要とする Django でいくつかの Web サイトを開発しています。web1 と web2 の 2 つの Django プロジェクトがあるとします (Web サイトにはそれぞれ git リポジトリがあります)。web1 と web2 の両方にインストールされているアプリのリストが異なりますが、どちらも私が開発した 1 つ (または複数) のアプリケーション (「MyApp」など) を使用しています (そこには git リポジトリもあります)。私の質問は次のとおりです。

  1. MyApp を特定の Web サイトから分離する最善の方法は何ですか? 私が望むのは、MyApp を個別に開発することですが、各 Web サイトでアプリの最新バージョンを使用することです (もちろん、アプリがインストールされている場合)。私は2つの「提案された」解決策を持っています.各Webサイトで「マスター」MyAppフォルダーへのシンボリックリンクを使用するか、gitを使用してMyAppから各Webサイトのリポジトリにプッシュします。

  2. このセットアップでデプロイする方法は? 現在、web1 と web2 の git リポジトリを共有ホスティング アカウントのリモート リポジトリにプッシュできます。これは適切にスケーリングされますか?

大まかなアイデアは頭の中で働いていると思いますが、詳細についてはわかりません。これにより、ネストされた git リポジトリの問題が発生しませんか? 特にシンボリックリンクの宛先に .git フォルダーがある場合、git は simlinks をどのように処理しますか?

4

1 に答える 1

4

私の働き方:

各 Web サイトには独自の git リポジトリがあり、各アプリには独自のリポジトリがあります。各 Web サイトには独自のvirtualenvともありrequirements.txtます。2 つの Web サイトが現在 MyApp の最新バージョンを共有している可能性がありますが、将来は共有されない可能性があります (API の変更について、いずれかの Web サイトを最新の状態にしていない可能性があります)。

MyApp のバージョンが 1 つだけ必要な場合は、それをシステム レベルでインストールしてから、virtualenvfor each プロジェクトにシンボリック リンクすることができます。

ローカル マシンでの開発 (本番環境ではない) の場合は、少し方法が異なります。アプリのプロジェクト フォルダーをvirtualenvWeb サイトの「src」フォルダーにシンボリック リンクし、次に にシンボリック リンクpython setup.py developvirtualenvて、最新の変更が常に Web サイトで「リアルタイム」に使用されるようにします。

于 2012-10-17T22:04:28.323 に答える