Loading django/core/management/commands/loaddata.py +1 −1 Original line number Diff line number Diff line Loading @@ -233,7 +233,7 @@ class Command(BaseCommand): """ dirs = [] for path in get_app_paths(): d = os.path.join(os.path.dirname(path), 'fixtures') d = os.path.join(path, 'fixtures') if os.path.isdir(d): dirs.append(d) dirs.extend(list(settings.FIXTURE_DIRS)) Loading django/core/management/sql.py +17 −3 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ from __future__ import unicode_literals import codecs import os import re import warnings from django.conf import settings from django.core.management.base import CommandError Loading Loading @@ -168,7 +169,18 @@ def _split_statements(content): def custom_sql_for_model(model, style, connection): opts = model._meta app_dir = os.path.normpath(os.path.join(os.path.dirname(upath(models.get_app(model._meta.app_label).__file__)), 'sql')) app_dirs = [] app_dir = models.get_app_path(model._meta.app_label) app_dirs.append(os.path.normpath(os.path.join(app_dir, 'sql'))) # Deprecated location -- remove in Django 1.9 old_app_dir = os.path.normpath(os.path.join(app_dir, 'models/sql')) if os.path.exists(old_app_dir): warnings.warn("Custom SQL location '<app_label>/models/sql' is " "deprecated, use '<app_label>/sql' instead.", PendingDeprecationWarning) app_dirs.append(old_app_dir) output = [] # Post-creation SQL should come before any initial SQL data is loaded. Loading @@ -181,8 +193,10 @@ def custom_sql_for_model(model, style, connection): # Find custom SQL, if it's available. backend_name = connection.settings_dict['ENGINE'].split('.')[-1] sql_files = [os.path.join(app_dir, "%s.%s.sql" % (opts.model_name, backend_name)), os.path.join(app_dir, "%s.sql" % opts.model_name)] sql_files = [] for app_dir in app_dirs: sql_files.append(os.path.join(app_dir, "%s.%s.sql" % (opts.model_name, backend_name))) sql_files.append(os.path.join(app_dir, "%s.sql" % opts.model_name)) for sql_file in sql_files: if os.path.exists(sql_file): with codecs.open(sql_file, 'U', encoding=settings.FILE_CHARSET) as fp: Loading django/db/models/__init__.py +1 −1 Original line number Diff line number Diff line from functools import wraps from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured from django.db.models.loading import get_apps, get_app_paths, get_app, get_models, get_model, register_models, UnavailableApp from django.db.models.loading import get_apps, get_app_path, get_app_paths, get_app, get_models, get_model, register_models, UnavailableApp from django.db.models.query import Q from django.db.models.expressions import F from django.db.models.manager import Manager Loading django/db/models/loading.py +12 −4 Original line number Diff line number Diff line Loading @@ -154,6 +154,16 @@ class AppCache(object): return [elt[0] for elt in apps] def _get_app_path(self, app): if hasattr(app, '__path__'): # models/__init__.py package app_path = app.__path__[0] else: # models.py module app_path = app.__file__ return os.path.dirname(upath(app_path)) def get_app_path(self, app_label): return self._get_app_path(self.get_app(app_label)) def get_app_paths(self): """ Returns a list of paths to all installed apps. Loading @@ -165,10 +175,7 @@ class AppCache(object): app_paths = [] for app in self.get_apps(): if hasattr(app, '__path__'): # models/__init__.py package app_paths.extend([upath(path) for path in app.__path__]) else: # models.py module app_paths.append(upath(app.__file__)) app_paths.append(self._get_app_path(app)) return app_paths def get_app(self, app_label, emptyOK=False): Loading Loading @@ -321,6 +328,7 @@ cache = AppCache() # These methods were always module level, so are kept that way for backwards # compatibility. get_apps = cache.get_apps get_app_path = cache.get_app_path get_app_paths = cache.get_app_paths get_app = cache.get_app get_app_errors = cache.get_app_errors Loading docs/internals/deprecation.txt +4 −0 Original line number Diff line number Diff line Loading @@ -414,6 +414,10 @@ these changes. * ``django.utils.unittest`` will be removed. * If models are organized in a package, Django will no longer look for :ref:`initial SQL data<initial-sql>` in ``myapp/models/sql/``. Move your custom SQL files to ``myapp/sql/``. 2.0 --- Loading Loading
django/core/management/commands/loaddata.py +1 −1 Original line number Diff line number Diff line Loading @@ -233,7 +233,7 @@ class Command(BaseCommand): """ dirs = [] for path in get_app_paths(): d = os.path.join(os.path.dirname(path), 'fixtures') d = os.path.join(path, 'fixtures') if os.path.isdir(d): dirs.append(d) dirs.extend(list(settings.FIXTURE_DIRS)) Loading
django/core/management/sql.py +17 −3 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ from __future__ import unicode_literals import codecs import os import re import warnings from django.conf import settings from django.core.management.base import CommandError Loading Loading @@ -168,7 +169,18 @@ def _split_statements(content): def custom_sql_for_model(model, style, connection): opts = model._meta app_dir = os.path.normpath(os.path.join(os.path.dirname(upath(models.get_app(model._meta.app_label).__file__)), 'sql')) app_dirs = [] app_dir = models.get_app_path(model._meta.app_label) app_dirs.append(os.path.normpath(os.path.join(app_dir, 'sql'))) # Deprecated location -- remove in Django 1.9 old_app_dir = os.path.normpath(os.path.join(app_dir, 'models/sql')) if os.path.exists(old_app_dir): warnings.warn("Custom SQL location '<app_label>/models/sql' is " "deprecated, use '<app_label>/sql' instead.", PendingDeprecationWarning) app_dirs.append(old_app_dir) output = [] # Post-creation SQL should come before any initial SQL data is loaded. Loading @@ -181,8 +193,10 @@ def custom_sql_for_model(model, style, connection): # Find custom SQL, if it's available. backend_name = connection.settings_dict['ENGINE'].split('.')[-1] sql_files = [os.path.join(app_dir, "%s.%s.sql" % (opts.model_name, backend_name)), os.path.join(app_dir, "%s.sql" % opts.model_name)] sql_files = [] for app_dir in app_dirs: sql_files.append(os.path.join(app_dir, "%s.%s.sql" % (opts.model_name, backend_name))) sql_files.append(os.path.join(app_dir, "%s.sql" % opts.model_name)) for sql_file in sql_files: if os.path.exists(sql_file): with codecs.open(sql_file, 'U', encoding=settings.FILE_CHARSET) as fp: Loading
django/db/models/__init__.py +1 −1 Original line number Diff line number Diff line from functools import wraps from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured from django.db.models.loading import get_apps, get_app_paths, get_app, get_models, get_model, register_models, UnavailableApp from django.db.models.loading import get_apps, get_app_path, get_app_paths, get_app, get_models, get_model, register_models, UnavailableApp from django.db.models.query import Q from django.db.models.expressions import F from django.db.models.manager import Manager Loading
django/db/models/loading.py +12 −4 Original line number Diff line number Diff line Loading @@ -154,6 +154,16 @@ class AppCache(object): return [elt[0] for elt in apps] def _get_app_path(self, app): if hasattr(app, '__path__'): # models/__init__.py package app_path = app.__path__[0] else: # models.py module app_path = app.__file__ return os.path.dirname(upath(app_path)) def get_app_path(self, app_label): return self._get_app_path(self.get_app(app_label)) def get_app_paths(self): """ Returns a list of paths to all installed apps. Loading @@ -165,10 +175,7 @@ class AppCache(object): app_paths = [] for app in self.get_apps(): if hasattr(app, '__path__'): # models/__init__.py package app_paths.extend([upath(path) for path in app.__path__]) else: # models.py module app_paths.append(upath(app.__file__)) app_paths.append(self._get_app_path(app)) return app_paths def get_app(self, app_label, emptyOK=False): Loading Loading @@ -321,6 +328,7 @@ cache = AppCache() # These methods were always module level, so are kept that way for backwards # compatibility. get_apps = cache.get_apps get_app_path = cache.get_app_path get_app_paths = cache.get_app_paths get_app = cache.get_app get_app_errors = cache.get_app_errors Loading
docs/internals/deprecation.txt +4 −0 Original line number Diff line number Diff line Loading @@ -414,6 +414,10 @@ these changes. * ``django.utils.unittest`` will be removed. * If models are organized in a package, Django will no longer look for :ref:`initial SQL data<initial-sql>` in ``myapp/models/sql/``. Move your custom SQL files to ``myapp/sql/``. 2.0 --- Loading