diff options
| author | mlavin <markdlavin@gmail.com> | 2014-02-08 08:50:01 -0500 |
|---|---|---|
| committer | mlavin <markdlavin@gmail.com> | 2014-02-08 09:01:59 -0500 |
| commit | 0ac13eccebb3d879f79b31585b1e81f655067179 (patch) | |
| tree | 6737ad4b52540b4eced3908da6fff1c55d8dc4cc | |
| parent | b041850853188428ac3b843001603db8f8a69392 (diff) | |
Remove check_migrations from the runserver command and use the new checks framework to check for unapplied migrations. Don't check for migrations if the DATABASES setting is empty.
| -rw-r--r-- | django/core/checks/__init__.py | 1 | ||||
| -rw-r--r-- | django/core/checks/migrations.py | 31 | ||||
| -rw-r--r-- | django/core/management/commands/runserver.py | 14 |
3 files changed, 32 insertions, 14 deletions
diff --git a/django/core/checks/__init__.py b/django/core/checks/__init__.py index 82a3acf337..691f2f9606 100644 --- a/django/core/checks/__init__.py +++ b/django/core/checks/__init__.py @@ -8,6 +8,7 @@ from .registry import register, run_checks, tag_exists # Import these to force registration of checks import django.core.checks.compatibility.django_1_6_0 # NOQA +import django.core.checks.migrations # NOQA import django.core.checks.model_checks # NOQA __all__ = [ diff --git a/django/core/checks/migrations.py b/django/core/checks/migrations.py new file mode 100644 index 0000000000..c557ad39e7 --- /dev/null +++ b/django/core/checks/migrations.py @@ -0,0 +1,31 @@ +# -*- 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 diff --git a/django/core/management/commands/runserver.py b/django/core/management/commands/runserver.py index e85aa88c3e..8320614409 100644 --- a/django/core/management/commands/runserver.py +++ b/django/core/management/commands/runserver.py @@ -10,8 +10,6 @@ import socket from django.core.management.base import BaseCommand, CommandError 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 six @@ -101,7 +99,6 @@ class Command(BaseCommand): self.stdout.write("Performing system checks...\n\n") self.validate(display_num_errors=True) - self.check_migrations() now = datetime.now().strftime('%B %d, %Y - %X') if six.PY2: now = now.decode('utf-8') @@ -146,16 +143,5 @@ class Command(BaseCommand): self.stdout.write(shutdown_message) 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 BaseRunserverCommand = Command |
