两个openshift git遥控器的单独配置文件(测试/生产)

时间:2015-10-05 06:22:57

标签: django git openshift

我无法弄清楚可能简单/容易的事情。我有一个django web应用程序的git存储库,我一直在推送它到Openshift进行测试。推送行为导致代码在Openshift上部署和运行。现在,我已经在Openshift上创建了我的应用程序的另一个副本供生产使用,并且一些安装文件(特别是在django配置文件settings.py中)略有不同。我想我需要有两个版本的文件,每个文件对应一个不同的远程,所以我可以推送到一个Openshift远程进行测试,然后推送到另一个Openshift远程进行部署。两者之间只有少数文件不同,大多数文件都是相同的。对于大多数文件来说,只是推送的频率不同(在部署到生产之前消除开发中的错误。)

我开始迷上git,但我的思绪仍然在颠覆,所以也许有一些我想念的简单。我是否应该在存储库中创建一个单独的分支进行生产,然后在解决错误时从开发“推送”到生产,然后将openshift上的生产远程连接到该分支?

这是特定于Openshift的问题吗?或者它是如此简单和基本的git,我甚至不知道如何正确谷歌?

(在Subversion,FWIW,我有一个单独的生产分支,我将“开发代码”合并/重新集成到生产分支中,然后将其提交到存储库。从中提取生产代码subversion服务器到正在运行的生产机器将是一个单独的步骤。)

2 个答案:

答案 0 :(得分:1)

为了对dev和pro进行单独设置,您可以执行以下操作:

  1. 在当前settings.py文件附近创建一个设置文件夹。
  2. 在新设置文件夹中创建__init__.py文件(请参阅下面的内容),将其注册为python模块。
  3. <强> __初始化__。PY

    from .base import *
    
    try:
        from .local import *
    except:
        pass
    
    try:
        from .production import *
    except:
        pass
    
    1. 在新设置文件夹中创建base.pylocal.pyproduction.pybase.py很可能应包含与旧版settings.py相同的代码,只有一个区别 - DEBUG设置应设置为False。在local.py中为您的开发人员编写必要的代码,并在其中设置DEBUG=True。在production.py中指定专业版DEBUG = False的所有设置以及文件开头的下一个条件:

      from django.conf import settings
      
      if not settings.DEBUG:
          #write all your settings in that block
      
    2. 现在您可以将local.py添加到.gitignore,仅将production.py设置文件推送到服务器。因此,您将在dev和pro中拥有不同的设置。

    3. 将旧的setting.py文件重命名为old_settings.py或其他任何内容。
    4. 我认为类似的方法可以用来为dev和pro指定其他单独的文件,但是,我没有检查过。

答案 1 :(得分:1)

如何检测您是否在Openshift服务器上并执行所需的设置代码?

Import os

if 'OPENSHIFT_APP_NAME' in os.environ:
  # do production setup stuff here 
else: 
  # do development setup stuff here