我正在编写一个startup.sh脚本,以便在创建docker容器时运行。
#!/bin/bash
python manage.py runserver
python manage.py makemigrations accounts
python manage.py migrate
python manage.py check_permissions
python manage.py cities --import=country --force
*python manage.py shell | from cities.models import * Country.objects.all().exclude(name='United States").delete()*
python manage.py cities --import=cities
python manage.py cities --import=postal_code
我猜测有问题的行是不正确的,在bash脚本中执行此操作的正确方法是什么?
答案 0 :(得分:1)
在shell脚本文件中包含django代码并不是一个好主意。最好制作python文件并将这些代码放入其中并执行:
python manage.py shell < script.py
或者更好,写一个django management command。通过这种方式,您可以在同一个项目/回购中跟踪您的代码,当他们看到这个时,人们就会变得更加困惑。
答案 1 :(得分:1)
使用heredoc:
python manage.py shell <<'EOF'
from cities.models import *
Country.objects.all().exclude(name='United States').delete()
EOF