Change the way a deprecation warning is issued. Fixes these:
http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=98
http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=106
diff -Naur sqlalchemy-migrate-0.6.orig/migrate/versioning/script/py.py sqlalchemy-migrate-0.6/migrate/versioning/script/py.py
--- sqlalchemy-migrate-0.6.orig/migrate/versioning/script/py.py 2010-07-09 18:53:14.000000000 +0000
+++ sqlalchemy-migrate-0.6/migrate/versioning/script/py.py 2011-12-04 22:35:55.450650132 +0000
@@ -4,6 +4,7 @@
import shutil
import warnings
import logging
+import inspect
from StringIO import StringIO
import migrate
@@ -136,12 +137,12 @@
funcname = base.operations[op]
script_func = self._func(funcname)
- try:
- script_func(engine)
- except TypeError:
- warnings.warn("upgrade/downgrade functions must accept engine"
- " parameter (since version > 0.5.4)", exceptions.MigrateDeprecationWarning)
- raise
+ # check for old way of using engine
+ if not inspect.getargspec(script_func).args:
+ raise TypeError("upgrade/downgrade functions must accept engine"
+ " parameter (since version 0.5.4)")
+
+ script_func(engine)
@property
def module(self):