32 lines
972 B
Python
32 lines
972 B
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from django.conf import settings
|
|
|
|
from . import Warning, register
|
|
|
|
|
|
@register('migrations')
|
|
def check_migrations(app_configs=None, **kwargs):
|
|
"""
|
|
Checks to see if the set of migrations on disk matches the
|
|
migrations in the database. Prints a warning if they don't match.
|
|
"""
|
|
from django.db import connections, DEFAULT_DB_ALIAS
|
|
from django.db.migrations.executor import MigrationExecutor
|
|
|
|
errors = []
|
|
plan = None
|
|
if settings.DATABASES:
|
|
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
|
|
plan = executor.migration_plan(executor.loader.graph.leaf_nodes())
|
|
if plan:
|
|
errors.append(
|
|
Warning(
|
|
"You have unapplied migrations; "
|
|
"your app may not work properly until they are applied.",
|
|
hint="Run 'python manage.py migrate' to apply them.",
|
|
)
|
|
)
|
|
return errors
|