[1.7.x] Mark initial_data as deprecated separately from syncdb. Refs #23077.

Conflicts:
	docs/internals/deprecation.txt
This commit is contained in:
Andrew Godwin 2014-07-25 09:09:15 -07:00
parent 6e7e5bacd5
commit 2bacc9f3b7
3 changed files with 14 additions and 0 deletions

View File

@ -18,6 +18,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:
@ -223,6 +224,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

View File

@ -7,6 +7,7 @@ in a backward incompatible way, following their deprecation, as per the
:ref:`deprecation policy <internal-release-deprecation-policy>`. More details
about each item can often be found in the release notes of two versions prior.
.. _deprecation-removed-in-1.9:
1.9
@ -31,6 +32,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

View File

@ -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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~