0

我浏览了官方zc.buildout文档和一些 tuts,但我还没有找到以下问题的明确答案。

假设我想从现在开始在每个 Django 项目(Django1.4)中自动执行以下更改,所有这些更改都可以仅通过buildout.cfg文件执行吗?

完成后,我将实施的默认 startproject更改$ django-admin.py startproject my_project示例:

$ mkdir ~/path/to/my_project/my_project/db

设置.py:

import os
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(ROOT_PATH, 'db/my_project.db'),                      
        'USER': '',                     
        'PASSWORD': '',                  
        'HOST': '',                    
        'PORT': '', 
    }
}

我目前构建并使用我自己定制的 Django 源代码 1.4 分支的分发作为解决方案,但很高兴知道我是否也可以使用 buildout 来做到这一点。

4

2 回答 2

1

您想要的并不是 Buildout 用例集的一部分。

您希望在启动项目时自定义生成的代码,而 buildout 旨在为您提供可重现的部署或开发环境。

一个开发人员会使用,后者旨在让多个开发人员或多台生产机器启动并使用相同的软件堆栈运行。

也就是说,当然可以构建一个构建配方,在零件运行时写出这些文件的新版本。例如,使用collective.recipe.template您可以指定每次运行构建时将模板文件放置在特定位置。请注意,如果它们发生更改,这将覆盖这些文件。

于 2012-10-22T14:02:56.817 回答
1

除了 Martijn 的回答: buildout 可以创建目录就好了。看看http://pypi.python.org/pypi/z3c.recipe.mkdir/

这是我经常使用它的任务之一(为日志文件创建一个 var/log/,为 sqlite 文件创建一个 var/sqlite/ 目录等)

于 2012-10-23T11:52:29.117 回答