Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不同版本的Django下运行两个Django应用程序_Django - Fatal编程技术网

在不同版本的Django下运行两个Django应用程序

在不同版本的Django下运行两个Django应用程序,django,Django,我继承了一种情况,即我们在一个Django项目下有许多应用程序。这些应用程序大部分是不相关的,但仍在同一个项目中 该项目正在使用Django 1.6.4,我们希望升级到至少1.8以获得LTS版本。我想以一种可控的、渐进的方式来做这件事——每次升级一个应用程序 可以在同一个Django项目中的两个不同版本的Django下运行两个不同的应用程序吗。或者,我们唯一的选择是将每个应用程序分解成自己的项目,一次一个吗?你不能(或者更好,你不应该),只有一个版本的django可以安全地阅读settings.

我继承了一种情况,即我们在一个Django项目下有许多应用程序。这些应用程序大部分是不相关的,但仍在同一个项目中

该项目正在使用Django 1.6.4,我们希望升级到至少1.8以获得LTS版本。我想以一种可控的、渐进的方式来做这件事——每次升级一个应用程序

可以在同一个Django项目中的两个不同版本的Django下运行两个不同的应用程序吗。或者,我们唯一的选择是将每个应用程序分解成自己的项目,一次一个吗?

你不能(或者更好,你不应该),只有一个版本的
django
可以安全地阅读
settings.py
,即使是稍微相关的应用程序。如果您允许两个不同版本的django读取并执行单个
settings.py
设置,则可能会出现混乱

理论上,您可以添加一个额外的
settings.py
文件,注释掉某些应用程序(假设没有依赖项),然后在同一数据库上启动第二个django实例。但这是自找麻烦

例如,如果在django版本之间实现特定的
模型。*字段
,则会遇到数据库不一致的问题。一次升级所有应用程序可能比从同一个数据库表读取/写入两个版本的django要安全得多

换句话说,如果您100%确定可以创建两个
settings.py
文件,一个是安装了
的应用程序中的应用程序A,另一个是安装了
的应用程序中的应用程序B,并且两个
settings.py中都不会出现一个应用程序,那么您就安全了。我还没有看到一个django项目,它允许应用程序之间的依赖关系将其清晰地分为两组应用程序,但是,如果您可以在项目中管理它,您可以安全地启动django的两个实例(每个实例都有不同的版本),并向每个实例传递正确的
设置.py

基本上:

这些应用程序大多是无关的

“大部分”这个词是致命的


另一方面,您始终可以选择创建数据库的副本并创建两个django项目,每个项目都连接到一个数据库实例

然后,您可以在稍后将要丢弃的数据库上自由测试django的新版本。这是一个更安全的升级选择