summaryrefslogtreecommitdiff
path: root/django/core
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2013-07-16 09:10:04 -0400
committerTim Graham <timograham@gmail.com>2013-07-24 06:56:33 -0400
commit31c13a99bb9ebdaf12ccab4e880c5da930d86e79 (patch)
treed7b2fcf5cbc526bf63ffe1a3b521ccc0e3f1d39c /django/core
parentc928725b933ff479c04e8a7fb74c4dc2ba138aa7 (diff)
Fixed #14300 -- Fixed initial SQL location if models is a package.
Thanks al_the_x for the report and fheinz for the draft patch.
Diffstat (limited to 'django/core')
-rw-r--r--django/core/management/commands/loaddata.py2
-rw-r--r--django/core/management/sql.py20
2 files changed, 18 insertions, 4 deletions
diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py
index 6856e85e45..aa879f6acc 100644
--- a/django/core/management/commands/loaddata.py
+++ b/django/core/management/commands/loaddata.py
@@ -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))
diff --git a/django/core/management/sql.py b/django/core/management/sql.py
index b58d89f60a..c5806086f9 100644
--- a/django/core/management/sql.py
+++ b/django/core/management/sql.py
@@ -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
@@ -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.
@@ -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: