【发布时间】:2013-01-05 22:52:13
【问题描述】:
在 Django 中,我想这样做 call_command 相当于
manage.py flush --no-initial-data
类似
call_command('flush', interactive = False, initial_data = False)
但 initial_data 和 no_initial_data 不是正确的关键字(它们什么都不做)。
很抱歉这个小问题,但我找不到这些选项的任何文档。
【问题讨论】:
-
--no-initial-data是 django 1.5 中的新功能。你确定用那个吗? -
阳性:1.5.0.rc.1。但它不会阻止任何初始数据,它只是进行正常刷新。我期待它提供一个完全空的数据库,但阅读链接,这可能不是预期的用途?它是否跳过了
initial_data夹具?我想要一个空数据库来导入东西。 -
1) 此功能在 Django 1.9 中已弃用 2) 使用 initial_data 确实不安全,因为它会默默地覆盖您在 db 中的当前状态
-
@pymen 很高兴知道它已被弃用,谢谢。如果您无论如何都要刷新数据库,我看不出使用 initial_data 的危险。
-
@Mark 风险在于您不想刷新时:当您在 staging/prod 上运行“manage.py migrate”并忘记使用“manage.py migrate --no-initial-”时数据”-如果真实数据库中的某些记录自“initial_data”状态以来发生了变化