is the issue that you want "schema" to be ignored when using a DB such
as SQLite that doesnt support this concept ? i thought we had a
ticket for that somewhere.....
On Jan 25, 2008, at 4:49 AM, Nick Joyce wrote:
> Hi,
>
> I am developing a web app using SQLite (which I will switch to
> PostgreSQL in production) and came across a weird select error when
> using schema. The attached file test.py reproduces the error and
> output.txt is the output from running the script.
>
> I have tested with 0.4.2p3 and trunk r4097.
>
> Am I missing something?
>
> Cheers,
>
> Nick
> >
> import sqlalchemy as sa
> from sqlalchemy import orm
>
> metadata = sa.MetaData()
>
> user = sa.Table('user', metadata,
> sa.Column('id', sa.Integer, primary_key=True, autoincrement=True),
> sa.Column('username', sa.String(50)),
> sa.Column('password', sa.String(50)),
> schema='auth')
>
> class User(object):
> pass
>
> orm.mapper(User, user)
>
> if __name__ == '__main__':
> engine = sa.create_engine('sqlite://', echo=True)
> metadata.create_all(bind=engine)
>
> Session = orm.scoped_session(orm.sessionmaker(
> autoflush=True, transactional=True, bind=engine))
>
> u = User()
> u.username = 'spam'
> u.password = 'eggs'
>
> Session.save(u)
> Session.commit()
> Session.flush()
>
> del u
>
> print Session.query(User).get(1)
> 2008-01-25 09:40:58,002 INFO sqlalchemy.engine.base.Engine.0x..4c
> PRAGMA table_info("user")
> 2008-01-25 09:40:58,002 INFO sqlalchemy.engine.base.Engine.0x..4c {}
> 2008-01-25 09:40:58,004 INFO sqlalchemy.engine.base.Engine.0x..4c
> CREATE TABLE user (
> id INTEGER NOT NULL,
> username VARCHAR(50),
> password VARCHAR(50),
> PRIMARY KEY (id)
> )
>
>
> 2008-01-25 09:40:58,005 INFO sqlalchemy.engine.base.Engine.0x..4c {}
> 2008-01-25 09:40:58,006 INFO sqlalchemy.engine.base.Engine.0x..4c
> COMMIT
> 2008-01-25 09:40:58,009 INFO sqlalchemy.engine.base.Engine.0x..4c
> BEGIN
> 2008-01-25 09:40:58,010 INFO sqlalchemy.engine.base.Engine.0x..4c
> INSERT INTO user (username, password) VALUES (?, ?)
> 2008-01-25 09:40:58,011 INFO sqlalchemy.engine.base.Engine.0x..4c
> ['spam', 'eggs']
> 2008-01-25 09:40:58,012 INFO sqlalchemy.engine.base.Engine.0x..4c
> COMMIT
> 2008-01-25 09:40:58,021 INFO sqlalchemy.engine.base.Engine.0x..4c
> BEGIN
> 2008-01-25 09:40:58,144 INFO sqlalchemy.engine.base.Engine.0x..4c
> SELECT user.id AS user_id, user.username AS user_username,
> user.password AS user_password
> FROM auth.user
> WHERE user.id = ?
> 2008-01-25 09:40:58,144 INFO sqlalchemy.engine.base.Engine.0x..4c [1]
> Traceback (most recent call last):
> File "test.py", line 34, in <module>
> print Session.query(User).get(1)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/orm/query.py", line 146, in get
> return self._get(key, ident, **kwargs)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/orm/query.py", line 893, in _get
> return q.all()[0]
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/orm/query.py", line 703, in all
> return list(self)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/orm/query.py", line 764, in __iter__
> return self._execute_and_instances(context)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/orm/query.py", line 767, in _execute_and_instances
> result = self.session.execute(querycontext.statement,
> params=self._params, mapper=self.mapper,
> instance=self._refresh_instance)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/orm/session.py", line 535, in execute
> return self.__connection(engine,
> close_with_result=True).execute(clause, params or {})
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/engine/base.py", line 844, in execute
> return Connection.executors[c](self, object, multiparams, params)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/engine/base.py", line 895, in execute_clauseelement
> return self._execute_compiled(elem.compile(dialect=self.dialect,
> column_keys=keys, inline=len(params) > 1), distilled_params=params)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/engine/base.py", line 907, in _execute_compiled
> self.__execute_raw(context)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/engine/base.py", line 916, in __execute_raw
> self._cursor_execute(context.cursor, context.statement,
> context.parameters[0], context=context)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/engine/base.py", line 953, in _cursor_execute
> self._handle_dbapi_exception(e, statement, parameters, cursor)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.4.2p3-py2.5.egg/
> sqlalchemy/engine/base.py", line 935, in _handle_dbapi_exception
> raise exceptions.DBAPIError.instance(statement, parameters, e,
> connection_invalidated=is_disconnect)
> sqlalchemy.exceptions.OperationalError: (OperationalError) no such
> table: auth.user u'SELECT user.id AS user_id, user.username AS
> user_username, user.password AS user_password \nFROM auth.user
> \nWHERE user.id = ?' [1]
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---