7a911b3a3d
Uvede tedy databázi do naprosto čistého stavu, bez tabulek ap. Není závislá na databázi (narozdíl od 'rm db-local.sqlite3') a nepotřebuje práva vytvářet nové databáze (narozdíl od 'DROP DATABASE' nebo './manage.py reset_db' nad Postgresem) Jinak je to prostě for-cyklus přes INSTALLED_APPS.
20 lines
627 B
Python
20 lines
627 B
Python
from mamweb.settings import INSTALLED_APPS
|
|
from django.core.management.base import BaseCommand, CommandError
|
|
from django.core.management import call_command
|
|
|
|
class Command(BaseCommand):
|
|
help = "Odmigruje všechny moduly (i.e. smaže všechny tabulky, ale databázi nechá)"
|
|
|
|
def add_arguments(self, parser):
|
|
# TODO: --force (makat a neblábolit)
|
|
pass
|
|
def handle(self, *args, **options):
|
|
# TODO: zeptat se
|
|
for app in INSTALLED_APPS:
|
|
app = app.split('.')[-1]
|
|
try:
|
|
call_command('migrate', app, 'zero')
|
|
except CommandError:
|
|
# app nemá migrace (aspoň typicky)
|
|
pass
|
|
call_command('showmigrations')
|