我正在使用Django构建一个and应用程序,它需要有两个不同的版本:一个企业版和一个标准的公共版本。到目前为止,我只开发了Enterprise,现在正在寻找以最简单的方式分离这两个版本的最佳方法,同时尽可能避免代码的重复。这两个版本的主要区别在于它们需要不同的URL和不同的视图。我打算使用多租户体系结构来基于子域进行区分,其中www.example.com是公共版本,而company1.example.com则是企业版。
我想出了一些可能的解决方案,但我对其中任何一个都不满意。
有没有人有这类解决方案的经验,或者有人能帮我找到这个问题的最佳解决方案?
发布于 2016-01-14 03:56:01
那么“一个Git存储库,所有的共享代码都被开发成‘可重用的应用程序’呢?”即配置使用INSTALLED_APPS设置启用的选项。
首先,您需要决定您的发布过程。如果您打算同时发布两个版本,那么使用一个git存储库是有意义的。
一个最重要的问题可能是,如果您对代码有不同的发行版要求,例如,如果您希望公共版本中的代码是可公开的,而企业版本是私有的。然后,您可能需要使用两个git存储库。
发布于 2016-01-14 12:47:55
你研究过使用git子树吗?它是子模块的另一种选择,它使流程变得不那么复杂。我认为亚特兰蒂斯在解释它的用途和利弊方面做得很好。几个例子是:
亚特兰西岛的链接是这里。
这里还有一个指向git子树的描述文件的链接。
发布于 2016-01-14 03:45:49
最好的解决方案可能是准确地确定在这两个项目之间共享哪些代码,并使其成为一个可重用的应用程序。
然后每个安装都可以安装django应用程序,然后也有自己的站点特定代码。
https://stackoverflow.com/questions/34780851
复制相似问题