Django 两个openshift git遥控器的单独配置文件(测试/生产)
我没能想出一些简单/容易的办法。我有一个django web应用程序的git存储库,我一直在把它推到Openshift进行测试。推送操作会导致代码在Openshift上部署和运行。现在,我已经在Openshift上创建了我的应用程序的另一个副本供生产使用,其中一些设置文件(尤其是在django配置文件settings.py中)略有不同。我想我需要有两个版本的文件,一个用于不同的远程设备,这样我可以推送到一个Openshift远程设备进行测试,然后推送到另一个Openshift远程设备进行部署。两者之间只有少数文件不同,大多数文件相同。对于大多数文件来说,不同的只是推送的频率(在部署到生产环境之前消除开发中的bug) 我开始掌握git的诀窍,但我的思维仍然围绕着subversion,所以也许我缺少一些简单的东西。我是否应该在存储库中为生产创建一个单独的分支,然后在消除bug后从开发“推”到生产,然后让openshift上的生产远程仅连接到该分支 这是Openshift特定的问题吗?或者它是git中如此简单和基本的东西,以至于我甚至不知道如何正确地搜索它Django 两个openshift git遥控器的单独配置文件(测试/生产),django,git,openshift,Django,Git,Openshift,我没能想出一些简单/容易的办法。我有一个django web应用程序的git存储库,我一直在把它推到Openshift进行测试。推送操作会导致代码在Openshift上部署和运行。现在,我已经在Openshift上创建了我的应用程序的另一个副本供生产使用,其中一些设置文件(尤其是在django配置文件settings.py中)略有不同。我想我需要有两个版本的文件,一个用于不同的远程设备,这样我可以推送到一个Openshift远程设备进行测试,然后推送到另一个Openshift远程设备进行部署。两
(在Subversion、FWIW中,我会有一个单独的生产分支,我会将开发代码“合并/重新集成”到生产分支中,然后将其提交到存储库。将生产代码从Subversion服务器拉到运行的生产机器将是一个单独的步骤。)要对dev和pro进行单独设置,可以执行以下操作:
settings.py
文件附近创建一个设置文件夹\uuuuu init\uuuuuuuuuupy
文件(请参阅下面的内容),将其注册为python模块from .base import *
try:
from .local import *
except:
pass
try:
from .production import *
except:
pass
base.py
、local.py
和production.py
base.py
最有可能包含与旧设置相同的代码。py
只有一个区别-调试设置应设置为False
。在local.py
中为开发人员编写必要的代码,并在其中设置DEBUG=True
。在production.py
中,使用DEBUG=False
指定pro的所有设置,并在文件开头指定下一个条件:
from django.conf import settings
if not settings.DEBUG:
#write all your settings in that block
local.py
添加到.gitignore,以便仅将production.py
设置文件推送到服务器。因此,在dev和pro中有不同的设置setting.py
文件重命名为old\u settings.py
或其他文件我认为类似的方法可以用于为dev和pro指定其他单独的文件,但是,我没有检查这一点。如何检测您是否在Openshift服务器上,并在此基础上执行所需的设置代码
Import os
if 'OPENSHIFT_APP_NAME' in os.environ:
# do production setup stuff here
else:
# do development setup stuff here
“我会有一个单独的生产分支,我会将开发代码“合并/重新集成”到生产分支中”——你可以在git中做同样的事情。您可以很容易地像您所说的那样拥有两个独立的分支:一旦您的bug被修复,只需将一个dev分支合并到master(或其他)中即可。我不认为这是操作系统特有的问题。我最喜欢这个答案。谢谢然而,开发和生产都是开放式的,所以如果os.Enviro('OPENSHIFT_APP_NAME')=='ProductionAppName'真是一个很好的建议,以及如何做这类事情的概述,那么我必须使用
。谢谢