我刚刚开始部署我已经在Openshift上开发的Django应用程序。我已经创建了应用程序并正确设置了环境(据我所知),现在我可以git push
我对Openshift所做的更改了。在
我用我的家用Linux桌面作为开发机器,正如你所想象的,在两个环境中有不同的设置——数据库登录信息、路径等等。我的问题是,我如何在家里开发,将更改推送到Openshift,并且仍然最容易地在两个系统上维护我的设置?我已经知道.gitignore
,但我的理解是,只有当您第一次提交到存储库中时,才会有效果。如果以后我想忽略其他文件,我会发现这变得很难维护。在
在中替换这些值是否更好设置.py使用在不同环境中保存不同值的环境变量?比如在本地机器上定义$OPENSHIFT_HOME_DIR?这似乎有点老套。在
我该如何应对?我很想听到任何在Openshift或其他具有类似环境的系统上执行此操作的人的意见。在
我也有这个问题。我尝试了@Arsh Singh所说的,为base、dev和production创建文件,并在Openshift中将DJANGO_SETTINGS_模块设置为
settings.production
。 但是,我得到错误只是因为openshift找不到设置文件。在如果只想运行生产(openshift)和dev(本地机器)版本,可以在名为pre_start_python-2.7的action_钩子上将环境变量设置为openshift。 文件的路径是:
.openshift/action_hooks/pre_start_python-2.7
示例:
这只是我的工作,但有什么问题吗。 第一种方法是,如果要更改环境变量的任何值,则应推送提交。另一个问题是,这不是一个好的做法,把你的敏感设置,如密码,路径在git上。只是为了代码。 我遇到的另一个问题是,当需要运行第三个环境进行转移时,这个解决方案就不适合了。在
然后,为了再次解决这个问题,我使用Frabric[1]在openshift上运行一些命令。 我的解决方案是在我的django应用程序上创建一个名为config的文件夹。 在这个文件夹中,创建三个文件,}。
在这个文件中,我有一个json dict,如下所示:
^{pr2}$local_env.txt2
,staging_env.txt2
和{然后,为了将环境变量发送到openshift,我创建了以下代码,这些代码只读取配置文件并发送到openshift。此代码的文件名应为
fabfile.py
。在然后,要部署环境变量,请运行它:
希望有帮助。在
您应该为不同的环境创建不同的设置文件。你可以做一个基准.py文件以包含公用设置,然后将其导入开发人员以及生产.py并在那里定义特定于环境的设置
检查此项目的布局:https://github.com/twoscoops/django-twoscoops-project/tree/develop/project_name/project_name
相关问题 更多 >
编程相关推荐