Package: python-sqlalchemy
Version: 0.5.3-1
Severity: important
Creation of schema-qualified tables fails with the sqlite backend. I
want to use that in the unittests, so I don't require the real database.
| Traceback (most recent call last):
| File "bug.py", line 11, in <module>
| metadata.create_all(engine)
| File "/var/lib/python-support/python2.5/sqlalchemy/schema.py", line 1765,
in create_all
| bind.create(self, checkfirst=checkfirst, tables=tables)
| File "/var/lib/python-support/python2.5/sqlalchemy/engine/base.py", line
1129, in create
| self._run_visitor(self.dialect.schemagenerator, entity,
connection=connection, **kwargs)
| File "/var/lib/python-support/python2.5/sqlalchemy/engine/base.py", line
1158, in _run_visitor
| visitorcallable(self.dialect, conn, **kwargs).traverse(element)
| File "/var/lib/python-support/python2.5/sqlalchemy/sql/visitors.py", line
89, in traverse
| return traverse(obj, self.__traverse_options__, self._visitor_dict)
| File "/var/lib/python-support/python2.5/sqlalchemy/sql/visitors.py", line
200, in traverse
| return traverse_using(iterate(obj, opts), obj, visitors)
| File "/var/lib/python-support/python2.5/sqlalchemy/sql/visitors.py", line
194, in traverse_using
| meth(target)
| File "/var/lib/python-support/python2.5/sqlalchemy/sql/compiler.py", line
807, in visit_metadata
| collection = [t for t in sql_util.sort_tables(tables) if
self._can_create(t)]
| File "/var/lib/python-support/python2.5/sqlalchemy/sql/compiler.py", line
800, in _can_create
| return not self.checkfirst or not self.dialect.has_table(self.connection,
table.name, schema=table.schema)
| File "/var/lib/python-support/python2.5/sqlalchemy/databases/sqlite.py",
line 442, in has_table
| cursor = _pragma_cursor(connection.execute("%stable_info(%s)" % (pragma,
qtable)))
| File "/var/lib/python-support/python2.5/sqlalchemy/engine/base.py", line
824, in execute
| return Connection.executors[c](self, object, multiparams, params)
| File "/var/lib/python-support/python2.5/sqlalchemy/engine/base.py", line
888, in _execute_text
| return self.__execute_context(context)
| File "/var/lib/python-support/python2.5/sqlalchemy/engine/base.py", line
896, in __execute_context
| self._cursor_execute(context.cursor, context.statement,
context.parameters[0], context=context)
| File "/var/lib/python-support/python2.5/sqlalchemy/engine/base.py", line
950, in _cursor_execute
| self._handle_dbapi_exception(e, statement, parameters, cursor, context)
| File "/var/lib/python-support/python2.5/sqlalchemy/engine/base.py", line
931, in _handle_dbapi_exception
| raise exc.DBAPIError.instance(statement, parameters, e,
connection_invalidated=is_disconnect)
| sqlalchemy.exc.OperationalError: (OperationalError) unknown database "test"
'PRAGMA "test".table_info("test")' ()
Testcode:
from sqlalchemy import MetaData, Table, Column, Integer
from sqlalchemy import create_engine
metadata = MetaData()
abonnement_table = Table('test', metadata,
Column('id', Integer, primary_key=True),
schema='test',
)
engine = create_engine('sqlite:///:memory:')
metadata.create_all(engine)
Bastian
--
I'm a soldier, not a diplomat. I can only tell the truth.
-- Kirk, "Errand of Mercy", stardate 3198.9
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]