If I understand things correctly, registration of new url-schemas to enable
something like dj-database-url to support 3rd parties should be a trivial
matter; just add an entry to some dictionary, with the schema as key, and the
dotted-path of the backend as value.
IMO, scanning INSTALLED_APPS, or relying on ready(), is a lot of over-
engineering for this. Just do the registration from the settings file, before
invoking the url-parsing mechanism:
from django.database_url import register_backend, configure_db
register_backend('pyodbc-azure', 'sql_server.pyodbc')
DATABASES = {'default' : configure_db() }
The only barrier I see is namespacing -- the functions mentioned above cannot
live in django.conf (would cause a circular import if imported from the
settings module) nor django.db (which shouldn't be imported too early), and
that's why I wrote `django.database_url` above.
What am I missing?