Package: python-migrate Version: 0.6-4 Severity: normal Tags: upstream patch
Hello,
Attached is a migration script (script.py) which triggers a non-intuitive error
in sqlalchemy-migrate. It has several type errors, but migrate catches
TypeError and fails to display a message because of wrong imports.
When I try to upgrade the schema, the following exception is thrown :
$ python dbmanage.py test
Upgrading...
Traceback (most recent call last):
File "dbmanage.py", line 3, in <module>
main(url='sqlite:///development.db', debug='False',
repository='migrations')
File "/usr/lib/pymodules/python2.6/migrate/versioning/shell.py", line
203, in main
ret = command_func(**kwargs)
File "<string>", line 2, in test
File "/usr/lib/pymodules/python2.6/migrate/versioning/util/__init__.py",
line 160, in with_engine
return f(*a, **kw)
File "/usr/lib/pymodules/python2.6/migrate/versioning/api.py", line 218,
in test
script.run(engine, 1)
File "/usr/lib/pymodules/python2.6/migrate/versioning/script/py.py", line
143, in run
" parameter (since version > 0.5.4)",
exceptions.MigrateDeprecationWarning)
AttributeError: 'module' object has no attribute 'MigrateDeprecationWarning'
According to upstream
(http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=98), this is
related to a wrong exception being thrown. I backported the patch mentioned
there to migrate 0.6.
Hope that helps,
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (900, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages python-migrate depends on:
ii libjs-jquery 1.4.2-2 JavaScript library for dynamic web
ii python 2.6.6-3+squeeze4 interactive high-level object-orie
ii python-decorator 3.2.0-1 simplify usage of python decorator
ii python-pkg-resources 0.6.14-4 Package Discovery and Resource Acc
ii python-sqlalchemy 0.6.3-3 SQL toolkit and Object Relational
ii python-support 1.0.10 automated rebuilding support for P
ii python-tempita 0.4-1 very small text templating languag
python-migrate recommends no packages.
python-migrate suggests no packages.
-- no debconf information
--
Etienne Millon
from sqlalchemy import *
from migrate import *
def t_account(meta):
Table( "account"
, meta.metadata
, Column( "id"
, Integer
, primary_key=True
)
, Column( "username"
, String(100)
, unique=True
)
, Column( "password"
, String(100)
)
)
def upgrade(migrate_engine):
m = MetaData(migrate_engine)
t = t_account(m)
c = UniqueConstraint(table=t,cols=['username'])
c.create()
def downgrade(migrate_engine):
m = MetaData(migrate_engine)
t = t_account(m)
c = UniqueConstraint(table=t,cols=['username'])
c.drop()
From: Etienne Millon <[email protected]> Date: Fri, 7 Jan 2011 21:19:02 +0100 Subject: [PATCH] use absolute imports of exception classes This has been inspired by upstream change : https://code.google.com/p/sqlalchemy-migrate/source/detail?r=3ba66abc4d194deaffdb0a0ea846cdd3419eb024 --- migrate/versioning/script/py.py | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/migrate/versioning/script/py.py b/migrate/versioning/script/py.py index 93ad776..f2d79b1 100644 --- a/migrate/versioning/script/py.py +++ b/migrate/versioning/script/py.py @@ -12,6 +12,7 @@ from migrate.versioning.template import Template from migrate.versioning.script import base from migrate.versioning.util import import_path, load_model, with_engine +from migrate.changeset.exceptions import MigrateDeprecationWarning log = logging.getLogger(__name__) @@ -140,7 +141,7 @@ script_func(engine) except TypeError: warnings.warn("upgrade/downgrade functions must accept engine" - " parameter (since version > 0.5.4)", exceptions.MigrateDeprecationWarning) + " parameter (since version > 0.5.4)", MigrateDeprecationWarning) raise @property --
signature.asc
Description: Digital signature

