我已经在Django中重命名了一些模型,并使用python manage.py makemigrations
创建了迁移。
使用python manage.py migrate
时,会收到以下消息提示
外键与这些内容类型相关的任何对象也会 被删除。您确定要删除这些内容类型吗? 如果您不确定,请回答“否”#。
键入'是'继续,或者不#39;取消:
在我的本地计算机上,我只需输入“是”'。然而,
我的应用程序部署在Heroku上,我已将迁移配置为在构建应用程序时自动运行。我使用看起来像这样的post_compile
文件实现了这个目标:
# Run Django migrations
./manage.py migrate
# Compress static assets
./manage.py compress
由于没有处于交互式shell中,迁移是否完全无法完成(因此无法回答“是”这个问题)?如果是这样,如何避免这个问题?
答案 0 :(得分:5)
您可以使用--noinput
命令的migrate
命令行参数:
./manage.py migrate --noinput
这会抑制提示,但不会删除过时的内容类型(即,它的效果就像您在提示时回答No
一样)。请参阅Django ticket #25036。
另一个替代方法是使用Unix命令yes
(我不确定它是否默认在Heroku上启用):
yes "yes" | ./manage.py migrate