8

我正在使用一个 PyQt 应用程序,它使用 Django 将其内容交付给桌面用户。

在最新的更新中,我们将过时的内容类型存储在 Django 的数据库中,并且在启动应用程序时 South 的 migrate 或 syncdb 提供删除它们。是否可以通过调用 migrate/syncdb 来自动删除这些?

由于明显的原因,这个提示不能暴露给最终用户,所以我真的希望有一些方法可以让我们自动取车:)

我已经看到,您可以调用 South migrate,--noinput但这不会删除它们,如果我们能这样做会很好,因为我们知道它会是安全的。

4

2 回答 2

18

在 unix 系统上有一个 command yes,它将重复输出一个字符串到 stdout,用换行符分隔。我们可以使用它来自动回答这个提示。

yes "yes" | python ./manage.py migrate

于 2015-07-05T02:11:25.233 回答
1

当我进行 Django 迁移时,我使用此命令在我的脚本中自动回答“是”:

cat <(echo "yes") - | ./manage.py syncdb --migrate

请注意,这只需要处理第一个提示。您可以在此处阅读有关其工作原理以及如何向第二个提示添加自动答案的详细信息:

https://stackoverflow.com/a/16347534/1636882

于 2014-03-28T09:49:28.060 回答