Django:如何编写不需要键盘输入的迁移?

Pro*_*oto 2 deployment django database-migration

我想知道是否有一种方法可以编写不会在终端要求我输入的迁移。例如,在编写删除模型的迁移时,Django 要求我在命令行中使用是/否确认这一点。我想避免这些提示,因为相同的代码将用于自动部署(在自动部署期间不能输入提示)。

我知道有这个noinput选项。如果可能的话,我对学习如何编写不需要键盘输入的迁移更感兴趣。我还注意到,有时即使使用此选项,我仍然会收到提示(我想到的一个示例是迁移要求我为添加到模型的新列输入默认数据;noinput并没有阻止 Django 询问无论如何,对于我的输入)。

knb*_*nbk 5

这里有两种情况:makemigrationsmigrate

migrate--noinput选项100% 覆盖:除非您安装忽略该选项的自定义第三方迁移前/迁移后信号挂钩,否则您将不会收到有关此选项的用户提示。

makemigrations--noinput选项并非 100% 覆盖,虽然它是一个很好的选择,但绝对没有必要。迁移应始终在您的开发环境中创建和测试。我还没有看到不能提供手动输入的开发环境。

1.9 会及时引入更好的--noinput对结合使用的支持makemigrations(目前只支持--noinput结合使用--merge)。