0

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

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

  2. 如何使用此设置进行部署?现在,我可以将 web1 和 web2 的 git repo 推送到我的共享主机帐户中的远程 repo,它就像一个魅力。这会充分扩展吗?

我想我脑子里有一个大致的想法,但我不确定细节。这不会创建一个嵌套的 git repo 问题吗?git 如何处理 simlinks,特别是如果 symlink 目标中有一个 .git 文件夹?

4

1 回答 1

4

我的工作方式:

每个网站都有自己的 git repo 每个应用程序都有自己的 repo。每个网站也有它自己的virtualenvrequirements.txt. 尽管 2 个网站现在可能共享最新版本的 MyApp,但它们将来可能不会(也许您还没有让其中一个网站在某些 API 更改上保持最新)。

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

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

于 2012-10-17T22:04:28.323 回答