1. Luke Plant
  2. south

Commits

and...@69d324d9-c39d-4fdc-8679-7745eae9e2c8  committed 9ee859e

Fix #163: Allow database adapters for South that aren't under "south.db.dbname".

  • Participants
  • Parent commits 90aa4eb
  • Branches default

Comments (0)

Files changed (1)

File south/db/__init__.py

View file
  • Ignore whitespace
 # This code somewhat lifted from django evolution
 from django.conf import settings
 import sys
-module_name = ['south.db', settings.DATABASE_ENGINE]
+if hasattr(settings, "SOUTH_DATABASE_ADAPTER"):
+    module_name = settings.SOUTH_DATABASE_ADAPTER
+else:
+    module_name = '.'.join(['south.db', settings.DATABASE_ENGINE])
+
 try:
-    module = __import__('.'.join(module_name),{},{},[''])
+    module = __import__(module_name,{},{},[''])
 except ImportError:
-    sys.stderr.write("There is no South database module for the engine '%s'. Please either choose a supported one, or remove South from INSTALLED_APPS.\n" % settings.DATABASE_ENGINE)
+    sys.stderr.write("There is no South database module for the engine '%s' (tried with %s). Please either choose a supported one, or check for SOUTH_DATABASE_ADAPTER settings, or remove South from INSTALLED_APPS.\n" 
+                     % (settings.DATABASE_ENGINE, module_name))
     sys.exit(1)
-db = module.DatabaseOperations()
+db = module.DatabaseOperations()