Source code for tcms.core.management.commands.migrations_order
# Copyright (c) 2020 Alexander Todorov <atodorov@MrSenko.com>
# Licensed under the GPL 2.0: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
import sys
from django.core.management.base import OutputWrapper, no_translations
from django.core.management.commands import migrate
[docs]
class KiwiOutputWrapper(OutputWrapper):
def __init__(self, *args, migrate_heading=None, **kwargs):
super().__init__(*args, **kwargs)
self.migrate_heading = migrate_heading
[docs]
def write(self, msg="", style_func=None, ending=None):
if style_func == self.migrate_heading:
super().write(msg)
[docs]
class Command(migrate.Command):
"""
Uses migrate --plan to avoid duplicating the internals.
"""
help = "List the order in which migrations will be applied. Useful for testing & rollback!"
def __init__(self, stdout=None, stderr=None, no_color=False, force_color=False):
super().__init__(
stdout=stdout, stderr=stderr, no_color=no_color, force_color=force_color
)
self.stdout = KiwiOutputWrapper(
stdout or sys.stdout, migrate_heading=self.style.MIGRATE_HEADING
)
@no_translations
def handle(self, *args, **options):
super().handle(
app_label=None,
database="default",
interactive=False,
plan=True,
run_syncdb=False,
verbosity=1,
skip_checks=True,
check_unapplied=False,
prune=False,
)