Я пытаюсь написать скрипт, который будет сбрасывать и повторно инициализировать базу данных для нового приложения django. Чтобы обнаружить любую ошибку, я хочу проверить код возврата каждой команды.
#! /bin/env python
import sys, os
def execute⌘:
print(cmd)
ret = os.system(cmd)
if not ret:
sys.exit("Last command failed")
if __name__ == "__main__":
if os.path.isfile('app.sqlite'):
os.unlink('app.sqlite')
execute('python manage.py syncdb --noinput --all') # << this fails
execute('python manage.py migrate --noinput --all')
Моя проблема в том, что я не смог найти способ безопасной повторной инициализации базы данных. Запуск migrate
завершается неудачно, потому что требуется syncdb
, а syncdb
завершается неудачей, потому что требуется migrate
.
Не просите меня игнорировать коды возврата из команд, я хочу решение, способное правильно обрабатывать коды ошибок.