summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2014-12-26 11:19:43 -0500
committerTim Graham <timograham@gmail.com>2015-01-17 09:07:00 -0500
commitf4f24d30e044b5bc2014b8356058099808c22c1a (patch)
treecaca3a9160c5e0ee7a6b9da9b35fa69ade87aa3f
parentfed25f1105ff0d5fe46cd217b29371ee7f1907f2 (diff)
Removed pre_syncdb and post_syncdb signals per deprecation timeline.
-rw-r--r--django/core/management/commands/flush.py2
-rw-r--r--django/core/management/commands/migrate.py16
-rw-r--r--django/core/management/sql.py20
-rw-r--r--django/db/models/signals.py3
-rw-r--r--docs/ref/signals.txt107
-rw-r--r--docs/releases/1.7.txt4
6 files changed, 9 insertions, 143 deletions
diff --git a/django/core/management/commands/flush.py b/django/core/management/commands/flush.py
index 53e5e389f0..3158d65841 100644
--- a/django/core/management/commands/flush.py
+++ b/django/core/management/commands/flush.py
@@ -102,4 +102,4 @@ Are you sure you want to do this?
all_models = []
for app_config in apps.get_app_configs():
all_models.extend(router.get_migratable_models(app_config, database, include_auto_created=True))
- emit_post_migrate_signal(set(all_models), verbosity, interactive, database)
+ emit_post_migrate_signal(verbosity, interactive, database)
diff --git a/django/core/management/commands/migrate.py b/django/core/management/commands/migrate.py
index 30286b7aeb..c8fdde2b01 100644
--- a/django/core/management/commands/migrate.py
+++ b/django/core/management/commands/migrate.py
@@ -3,7 +3,6 @@ from __future__ import unicode_literals
from collections import OrderedDict
from importlib import import_module
-import itertools
import time
import traceback
import warnings
@@ -163,17 +162,13 @@ class Command(BaseCommand):
% (targets[0][1], targets[0][0])
)
+ emit_pre_migrate_signal(self.verbosity, self.interactive, connection.alias)
+
# Run the syncdb phase.
- # If you ever manage to get rid of this, I owe you many, many drinks.
- # Note that pre_migrate is called from inside here, as it needs
- # the list of models about to be installed.
if run_syncdb and executor.loader.unmigrated_apps:
if self.verbosity >= 1:
self.stdout.write(self.style.MIGRATE_HEADING("Synchronizing apps without migrations:"))
- created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
- else:
- created_models = []
- emit_pre_migrate_signal([], self.verbosity, self.interactive, connection.alias)
+ self.sync_apps(connection, executor.loader.unmigrated_apps)
# The test runner requires us to flush after a syncdb but before migrations,
# so do that here.
@@ -214,7 +209,7 @@ class Command(BaseCommand):
# Send the post_migrate signal, so individual apps can do whatever they need
# to do at this point.
- emit_post_migrate_signal(created_models, self.verbosity, self.interactive, connection.alias)
+ emit_post_migrate_signal(self.verbosity, self.interactive, connection.alias)
def migration_progress_callback(self, action, migration=None, fake=False):
if self.verbosity >= 1:
@@ -279,9 +274,6 @@ class Command(BaseCommand):
for app_name, model_list in all_models
)
- create_models = set(itertools.chain(*manifest.values()))
- emit_pre_migrate_signal(create_models, self.verbosity, self.interactive, connection.alias)
-
# Create the tables for each model
if self.verbosity >= 1:
self.stdout.write(" Creating tables...\n")
diff --git a/django/core/management/sql.py b/django/core/management/sql.py
index a1897054de..c38993e702 100644
--- a/django/core/management/sql.py
+++ b/django/core/management/sql.py
@@ -242,7 +242,7 @@ def custom_sql_for_model(model, style, connection):
return output
-def emit_pre_migrate_signal(create_models, verbosity, interactive, db):
+def emit_pre_migrate_signal(verbosity, interactive, db):
# Emit the pre_migrate signal for every application.
for app_config in apps.get_app_configs():
if app_config.models_module is None:
@@ -255,17 +255,9 @@ def emit_pre_migrate_signal(create_models, verbosity, interactive, db):
verbosity=verbosity,
interactive=interactive,
using=db)
- # For backwards-compatibility -- remove in Django 1.9.
- models.signals.pre_syncdb.send(
- sender=app_config.models_module,
- app=app_config.models_module,
- create_models=create_models,
- verbosity=verbosity,
- interactive=interactive,
- db=db)
-def emit_post_migrate_signal(created_models, verbosity, interactive, db):
+def emit_post_migrate_signal(verbosity, interactive, db):
# Emit the post_migrate signal for every application.
for app_config in apps.get_app_configs():
if app_config.models_module is None:
@@ -278,11 +270,3 @@ def emit_post_migrate_signal(created_models, verbosity, interactive, db):
verbosity=verbosity,
interactive=interactive,
using=db)
- # For backwards-compatibility -- remove in Django 1.9.
- models.signals.post_syncdb.send(
- sender=app_config.models_module,
- app=app_config.models_module,
- created_models=created_models,
- verbosity=verbosity,
- interactive=interactive,
- db=db)
diff --git a/django/db/models/signals.py b/django/db/models/signals.py
index a4db68b720..a87d473f94 100644
--- a/django/db/models/signals.py
+++ b/django/db/models/signals.py
@@ -67,6 +67,3 @@ m2m_changed = ModelSignal(
pre_migrate = Signal(providing_args=["app_config", "verbosity", "interactive", "using"])
post_migrate = Signal(providing_args=["app_config", "verbosity", "interactive", "using"])
-
-pre_syncdb = Signal(providing_args=["app", "create_models", "verbosity", "interactive", "db"])
-post_syncdb = Signal(providing_args=["class", "app", "created_models", "verbosity", "interactive", "db"])
diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt
index 84bb7f570e..445e4b9f9f 100644
--- a/docs/ref/signals.txt
+++ b/docs/ref/signals.txt
@@ -405,52 +405,6 @@ Arguments sent with this signal:
``using``
The alias of database on which a command will operate.
-pre_syncdb
-----------
-
-.. data:: django.db.models.signals.pre_syncdb
- :module:
-
-.. deprecated:: 1.7
-
- This signal has been replaced by :data:`~django.db.models.signals.pre_migrate`.
-
-Sent by the :djadmin:`syncdb` command before it starts to install an
-application.
-
-Arguments sent with this signal:
-
-``sender``
- The ``models`` module that was just installed. That is, if
- :djadmin:`syncdb` just installed an app called ``"foo.bar.myapp"``,
- ``sender`` will be the ``foo.bar.myapp.models`` module.
-
-``app``
- Same as ``sender``.
-
-``create_models``
- A list of the model classes from any app which :djadmin:`syncdb` plans to
- create.
-
-
-``verbosity``
- Indicates how much information manage.py is printing on screen. See
- the :djadminopt:`--verbosity` flag for details.
-
- Functions which listen for :data:`pre_syncdb` should adjust what they
- output to the screen based on the value of this argument.
-
-``interactive``
- If ``interactive`` is ``True``, it's safe to prompt the user to input
- things on the command line. If ``interactive`` is ``False``, functions
- which listen for this signal should not try to prompt for anything.
-
- For example, the :mod:`django.contrib.auth` app only prompts to create a
- superuser when ``interactive`` is ``True``.
-
-``db``
- The alias of database on which a command will operate.
-
post_migrate
------------
@@ -518,67 +472,6 @@ For example, you could register a callback in an
when settings are overridden) and such signals should be connected for each
new ``AppConfig`` instance.
-post_syncdb
------------
-
-.. data:: django.db.models.signals.post_syncdb
- :module:
-
-.. deprecated:: 1.7
-
- This signal has been replaced by :data:`~django.db.models.signals.post_migrate`.
-
-Sent by the :djadmin:`syncdb` command after it installs an application, and the
-:djadmin:`flush` command.
-
-It is important that handlers of this signal perform idempotent changes (e.g.
-no database alterations) as this may cause the :djadmin:`flush` management
-command to fail if it also ran during the :djadmin:`syncdb` command.
-
-Arguments sent with this signal:
-
-``sender``
- The ``models`` module that was just installed. That is, if
- :djadmin:`syncdb` just installed an app called ``"foo.bar.myapp"``,
- ``sender`` will be the ``foo.bar.myapp.models`` module.
-
-``app``
- Same as ``sender``.
-
-``created_models``
- A list of the model classes from any app which :djadmin:`syncdb` has
- created so far.
-
-``verbosity``
- Indicates how much information manage.py is printing on screen. See
- the :djadminopt:`--verbosity` flag for details.
-
- Functions which listen for :data:`post_syncdb` should adjust what they
- output to the screen based on the value of this argument.
-
-``interactive``
- If ``interactive`` is ``True``, it's safe to prompt the user to input
- things on the command line. If ``interactive`` is ``False``, functions
- which listen for this signal should not try to prompt for anything.
-
- For example, the :mod:`django.contrib.auth` app only prompts to create a
- superuser when ``interactive`` is ``True``.
-
-``db``
- The database alias used for synchronization. Defaults to the ``default``
- database.
-
-For example, ``yourapp/management/__init__.py`` could be written like::
-
- from django.db.models.signals import post_syncdb
- import yourapp.models
-
- def my_callback(sender, **kwargs):
- # Your specific logic here
- pass
-
- post_syncdb.connect(my_callback, sender=yourapp.models)
-
Request/response signals
========================
diff --git a/docs/releases/1.7.txt b/docs/releases/1.7.txt
index 2592d64983..bdf9abe3a2 100644
--- a/docs/releases/1.7.txt
+++ b/docs/releases/1.7.txt
@@ -51,8 +51,8 @@ but a few of the key features are:
* A new ``makemigrations`` command provides an easy way to autodetect changes
to your models and make migrations for them.
- :data:`~django.db.models.signals.pre_syncdb` and
- :data:`~django.db.models.signals.post_syncdb` have been deprecated,
+ ``django.db.models.signals.pre_syncdb`` and
+ ``django.db.models.signals.post_syncdb`` have been deprecated,
to be replaced by :data:`~django.db.models.signals.pre_migrate` and
:data:`~django.db.models.signals.post_migrate` respectively. These
new signals have slightly different arguments. Check the