如何编写django-shell操作的脚本



我想创建一个可以执行以下操作的脚本(.sh或python,不重要):

heroku pg:reset DATABASE_URL
heroku run python manage.py migrate
heroku run python manage.py shell
> from myapp.scenarios import *; reset_demo_data(); exit()

第1行到第3行是UNIX命令,但第4行是要在打开的Django shell中执行的python。

我尝试使用|>在命令中"注入"python代码,但没有成功。我想这很容易做,但我不知道怎么做。。

谢谢。

我想最好的选择是编写一个自定义管理命令。

然后您的脚本可能看起来像:

heroku pg:reset DATABASE_URL
heroku run python manage.py migrate
heroku run python manage.py shell
heroku run python manage.py reset_demo

当管理命令类似于时

from django.core.management.base import BaseCommand
from myapp.scenarios import *
class Command(BaseCommand):
    def handle(self, *args, **options):
        reset_demo_data()

或者您可以尝试以下单行解决方案:

echo "from myapp.scenarios import *; reset_demo_data(); exit()" | python manage.py shell

您可以添加此行来替换Shell激活行。

最新更新