不同阶段有不同的 initial_data 固定装置(测试与生产)
Posted
技术标签:
【中文标题】不同阶段有不同的 initial_data 固定装置(测试与生产)【英文标题】:Have different initial_data fixtures for different stages (testing v. production) 【发布时间】:2011-06-11 12:11:43 【问题描述】:我有一个initial_data
固定装置,我想每次都加载它除了 用于生产。我已经有用于生产和非生产部署的不同设置文件。
关于如何完成此任务的任何建议?
澄清:我不想要测试夹具。基本上,我只需要根据某种设置更改来加载夹具。我将深入研究 Django 代码,看看是否能找到一种优雅的方式来完成此任务。
【问题讨论】:
【参考方案1】:最简单的方法是使用manage.py testserver [fixture ...]
但是,如果这是一个暂存(而不是开发)部署,您可能不想使用 django 的内置服务器。在这种情况下,一种快速(如果很笨拙)的方法是在仅安装在非生产设置中的应用程序(例如,称为“未部署”)中安装固定装置。
【讨论】:
【参考方案2】:如果您愿意,您实际上可以为每个测试设置不同的测试夹具: 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,让您可以从命令行快速轻松地完成此操作。
【讨论】:
对不起@hazmat。一开始我不是很清楚。不过谢谢你的回答!以上是关于不同阶段有不同的 initial_data 固定装置(测试与生产)的主要内容,如果未能解决你的问题,请参考以下文章