Git,Django和可插拔应用程序

时间:2012-10-17 21:40:31

标签: python django git

我目前正在开发Django的几个网站,这些网站需要几个Django应用程序。假设我有两个Django项目:web1和web2(网站,每个都有一个git repo)。 web1和web2都有不同的已安装应用程序列表,但碰巧使用了我开发的一个(或多个)应用程序,比如说“MyApp”(也有一个git repo)。我的问题是:

  1. 将MyApp与任何特定网站分离的最佳方法是什么?我想要的是独立开发MyApp,但每个网站都使用最新版本的应用程序(如果安装了它,当然)。我有两个“建议”的解决方案:在每个网站上使用符号链接到“主”MyApp文件夹,或使用git从MyApp推送到每个网站的回购。

  2. 如何使用此设置进行部署?现在,我可以将web1和web2的git repo推送到我的共享主机帐户中的远程仓库,它就像一个魅力。这种规模是否足够?

  3. 我认为我的总体想法在我脑海中起作用,但我不确定具体细节。这不会创建一个嵌套的git repo问题吗? git如何处理simlinks,特别是如果符号链接目标有一个.git文件夹?

1 个答案:

答案 0 :(得分:4)

我的工作方式:

每个网站都有自己的git repo 每个应用都拥有自己的回购。每个网站都有自己的virtualenvrequirements.txt。即使2个网站目前可能共享最新版本的MyApp,但未来可能不会(可能您没有获得其中一个网站更新的某些API更改)。

如果您确实只有一个版本的MyApp,则可以在系统级别安装它,然后将其符号链接到每个项目的virtualenv

对于本地机器(非生产)的开发,我的做法有点不同。我将应用程序的项目文件夹符号链接到网站virtualenv中的“src”文件夹,然后将python setup.py develop符号链接到virtualenv,以便最新的更改始终在网站上使用“实时“。