Commits

Anonymous committed 9ee859e

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

Comments (0)

Files changed (1)

south/db/__init__.py

 # 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()