Source code for xocto.health

from django.db import DEFAULT_DB_ALIAS, connections
from django.db.migrations.loader import MigrationLoader


[docs] def check_migrations() -> bool: """ Check if there are any migrations that haven't been applied yet. """ return _num_unapplied_migrations() == 0
def _num_unapplied_migrations() -> int: """ Return the number of unapplied migrations. """ connection = connections[DEFAULT_DB_ALIAS] loader = MigrationLoader(connection) graph = loader.graph # Count unapplied migrations num_unapplied_migrations = 0 for app_name in loader.migrated_apps: for node in graph.leaf_nodes(app_name): for plan_node in graph.forwards_plan(node): if plan_node not in loader.applied_migrations: num_unapplied_migrations += 1 return num_unapplied_migrations