$ cat test.py from sqlalchemy import * metadata = BoundMetaData('sqlite://') metadata.engine.echo = True class Test(object): pass test_table = Table('test', metadata, Column('foo', Integer, primary_key=True), Column('bar', String) ) m = mapper(Test, test_table, properties = { 'bar': deferred(test_table.c.bar) } ) metadata.create_all() session = create_session(bind_to=metadata.engine) t = Test() t.foo = 42 session.save(t) session.flush() ~ $ python test.py [2006-07-11 19:24:55,278] [engine]: PRAGMA table_info(test) [2006-07-11 19:24:55,278] [engine]: {} [2006-07-11 19:24:55,280] [engine]: CREATE TABLE test( foo INTEGER NOT NULL PRIMARY KEY, bar TEXT ) [2006-07-11 19:24:55,280] [engine]: None [2006-07-11 19:24:55,280] [engine]: COMMIT [2006-07-11 19:24:55,282] [engine]: BEGIN [2006-07-11 19:24:55,283] [engine]: SELECT test.bar AS test_bar FROM test WHERE test.foo = ? [2006-07-11 19:24:55,283] [engine]: [42] [2006-07-11 19:24:55,284] [engine]: ROLLBACK Traceback (most recent call last): File "test.py", line 26, in ? session.flush() File "sqlalchemy/orm/session.py", line 233, in flush File "/home/alex/pydev/Sqlalchemy/trunk/sqlalchemy/orm/unitofwork.py", line 231, in flush trans.rollback() File "sqlalchemy/orm/session.py", line 55, in rollback File "sqlalchemy/engine/base.py", line 366, in rollback File "sqlalchemy/engine/base.py", line 211, in _rollback_impl File "sqlalchemy/engine/base.py", line 184, in _get_connection sqlalchemy.exceptions.InvalidRequestError: This Connection is closed