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
-~----------~----~----~----~------~----~------~--~---

Reply via email to