Reverting unapplied migrations check away from being a system-level check.

This reverts commit 0ac13ecceb.
This commit is contained in:
Andrew Godwin 2014-02-12 18:55:20 +00:00
parent dbe82e74f2
commit 7e941ba67c
3 changed files with 14 additions and 32 deletions

View File

@ -8,7 +8,6 @@ from .registry import register, run_checks, tag_exists
# Import these to force registration of checks # Import these to force registration of checks
import django.core.checks.compatibility.django_1_6_0 # NOQA import django.core.checks.compatibility.django_1_6_0 # NOQA
import django.core.checks.migrations # NOQA
import django.core.checks.model_checks # NOQA import django.core.checks.model_checks # NOQA
__all__ = [ __all__ = [

View File

@ -1,31 +0,0 @@
# -*- 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

View File

@ -10,6 +10,8 @@ import socket
from django.core.management.base import BaseCommand, CommandError from django.core.management.base import BaseCommand, CommandError
from django.core.servers.basehttp import run, get_internal_wsgi_application from django.core.servers.basehttp import run, get_internal_wsgi_application
from django.db import connections, DEFAULT_DB_ALIAS
from django.db.migrations.executor import MigrationExecutor
from django.utils import autoreload from django.utils import autoreload
from django.utils import six from django.utils import six
@ -99,6 +101,7 @@ class Command(BaseCommand):
self.stdout.write("Performing system checks...\n\n") self.stdout.write("Performing system checks...\n\n")
self.validate(display_num_errors=True) self.validate(display_num_errors=True)
self.check_migrations()
now = datetime.now().strftime('%B %d, %Y - %X') now = datetime.now().strftime('%B %d, %Y - %X')
if six.PY2: if six.PY2:
now = now.decode('utf-8') now = now.decode('utf-8')
@ -143,5 +146,16 @@ class Command(BaseCommand):
self.stdout.write(shutdown_message) self.stdout.write(shutdown_message)
sys.exit(0) sys.exit(0)
def check_migrations(self):
"""
Checks to see if the set of migrations on disk matches the
migrations in the database. Prints a warning if they don't match.
"""
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
plan = executor.migration_plan(executor.loader.graph.leaf_nodes())
if plan:
self.stdout.write(self.style.NOTICE("\nYou have unapplied migrations; your app may not work properly until they are applied."))
self.stdout.write(self.style.NOTICE("Run 'python manage.py migrate' to apply them.\n"))
# Kept for backward compatibility # Kept for backward compatibility
BaseRunserverCommand = Command BaseRunserverCommand = Command