diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py index b6a1e1df382..0c739999b29 100644 --- a/django/core/management/commands/loaddata.py +++ b/django/core/management/commands/loaddata.py @@ -17,6 +17,7 @@ from django.utils import lru_cache from django.utils.encoding import force_text from django.utils.functional import cached_property from django.utils._os import upath +from django.utils.deprecation import RemovedInDjango19Warning from itertools import product try: @@ -219,6 +220,11 @@ class Command(BaseCommand): if fixture_name != 'initial_data' and not fixture_files: # Warning kept for backwards-compatibility; why not an exception? warnings.warn("No fixture named '%s' found." % fixture_name) + elif fixture_name == 'initial_data': + warnings.warn( + 'initial_data fixtures are deprecated. Use data migrations instead.', + RemovedInDjango19Warning + ) return fixture_files diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index cc219343a39..f1cdfdb6bef 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -28,10 +28,6 @@ about each item can often be found in the release notes of two versions prior. * The ``DatabaseCreation`` class on each database backend will be removed, and all table/schema editing will be moved to be via ``SchemaEditor`` instead. -* The legacy method of syncing apps without migrations will be removed, - and migrations will become compulsory for all apps. This includes automatic - loading of fixtures and support for initial SQL data. - * The ability to :func:`~django.core.urlresolvers.reverse` URLs using a dotted Python path will be removed. @@ -68,6 +64,10 @@ details on these changes. * ``allow_syncdb`` on database routers will no longer automatically become ``allow_migrate``. +* The legacy method of syncing apps without migrations will be removed, + and migrations will become compulsory for all apps. This includes automatic + loading of ``initial_data`` fixtures and support for initial SQL data. + * All models will need to be defined inside an installed application or declare an explicit :attr:`~django.db.models.Options.app_label`. Furthermore, it won't be possible to import them before their application diff --git a/docs/releases/1.7.txt b/docs/releases/1.7.txt index ac7ed7cd779..7bd13c6c12d 100644 --- a/docs/releases/1.7.txt +++ b/docs/releases/1.7.txt @@ -961,6 +961,9 @@ Instead, you are encouraged to load initial data in migrations if you need it this has the added advantage that your initial data will not need updating every time you change the schema. +Additionally, like the rest of Django's old ``syncdb`` code, ``initial_data`` +has been started down the deprecation path and will be removed in Django 1.9. + deconstruct() and serializability ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~