为不同阶段(测试对生产)提供不同的initial_data灯具

时间:2011-01-19 03:00:12

标签: python django django-models django-settings django-fixtures

我有一个initial_data装置,我希望每次加载除以进行生产。我已经为生产和非生产部署提供了不同的设置文件。

有关如何完成此任务的任何建议?

澄清:我不想要测试装置。基本上,我只需要根据某种设置变化加载夹具。我将深入研究Django代码,看看我是否能找到一种优雅的方法来实现这一目标。

2 个答案:

答案 0 :(得分:1)

如果需要,您可以为每个测试设置不同的测试装置: http://docs.djangoproject.com/en/dev/topics/testing/#topics-testing-fixtures

如果您只想一次加载灯具,您还可以编写一个自定义的TestRunner,它允许您在开始时进行设置:

docs.djangoproject.com/en/dev/topics/testing/#using-different-testing-frameworks

这两个仍将加载来自生产装置的数据,就像使用syncdb一样,但您可以覆盖数据,甚至可以全部删除。如果要将大量数据加载到生产产品中,这可能不是最佳选择。如果是这种情况,我建议您添加一个自定义命令,如load_production_data,它允许您从命令行快速轻松地执行此操作。

答案 1 :(得分:0)

最简单的方法是使用manage.py testserver [fixture ...]

如果这是一个暂存(而不是开发)部署,您可能不想使用django的内置服务器。在这种情况下,快速(如果hacky)做你正在做的事情的方法是将应用程序(例如,称为“取消部署”)中的灯具安装在非生产设置中。