【发布时间】:2014-01-10 09:48:16
【问题描述】:
我有一个可以在队列中生成一些乱码模型实例的应用程序。与拥有静态夹具 initial_data 不同,我希望在迁移期间拥有类似以下内容:
if IS_DEBUG and not IS_TEST:
(create_post() for _ in xrange(100))
(create_user() for _ in xrange(100))
我知道如何在 django 中加载静态装置,但我希望更好地控制我加载到我的应用程序中的虚假数据。
请注意 - 这不是用于 unit/func/anything 测试,而是用于填充数据库以便能够浏览网站的开发版本并环顾四周。
完成此任务的最佳方法是什么?自定义南迁?
更新:与南迁移有关的问题,如果我在填充数据的自定义迁移之后更改迁移中的模型 - 会有点混乱。例如:
0001_initial
0002_generate_fixtures
0003_add_field_to_a_model
所以现在我必须删除 0002_generate_fixtures 并创建新的迁移 0004_generate_fixtures。这很快就会变得一团糟。
【问题讨论】:
-
我为类似的东西写了一个管理命令。我使用 bash 脚本来调用它并填充数据库,但您可以使用 python 或其他任何东西。每次我重新创建开发数据库时,我都会调用我的 bash 脚本。这一切都是自动化的、可跟踪的并且易于更改docs.djangoproject.com/en/dev/howto/custom-management-commands
标签: python django django-south