If you could send code examples in a readable format, that would be helpful.
Here is column_prefix working as documented:
from sqlalchemy import *
from sqlalchemy.orm import *
engine = create_engine('sqlite://', echo=True)
metadata = MetaData()
t = Table('foo', metadata,
Column('id', Integer, primary_key=True),
Column('data', String),
)
class Foo(object):
pass
mapper(Foo, t, column_prefix="bar_")
metadata.create_all(engine)
sess = sessionmaker(engine)()
f1 = Foo()
f1.bar_id = 1
f1.bar_data = "some data"
sess.add(f1)
sess.commit()
assert engine.execute("select * from foo").fetchall() == [(1, 'some data')]
sess.expunge_all()
f1 = sess.query(Foo).first()
assert f1.bar_id == 1
assert f1.bar_data == "some data"
z-eeks-Computer-3:sqlalchemy classic$ python test.py
2010-04-15 11:15:16,472 INFO sqlalchemy.engine.base.Engine.0x...b990 PRAGMA
table_info("foo")
2010-04-15 11:15:16,472 INFO sqlalchemy.engine.base.Engine.0x...b990 ()
2010-04-15 11:15:16,472 INFO sqlalchemy.engine.base.Engine.0x...b990
CREATE TABLE foo (
id INTEGER NOT NULL,
data VARCHAR,
PRIMARY KEY (id)
)
2010-04-15 11:15:16,473 INFO sqlalchemy.engine.base.Engine.0x...b990 ()
2010-04-15 11:15:16,473 INFO sqlalchemy.engine.base.Engine.0x...b990 COMMIT
2010-04-15 11:15:16,474 INFO sqlalchemy.engine.base.Engine.0x...b990 BEGIN
2010-04-15 11:15:16,475 INFO sqlalchemy.engine.base.Engine.0x...b990 INSERT
INTO foo (id, data) VALUES (?, ?)
2010-04-15 11:15:16,475 INFO sqlalchemy.engine.base.Engine.0x...b990 (1, 'some
data')
2010-04-15 11:15:16,475 INFO sqlalchemy.engine.base.Engine.0x...b990 COMMIT
2010-04-15 11:15:16,476 INFO sqlalchemy.engine.base.Engine.0x...b990 select *
from foo
2010-04-15 11:15:16,476 INFO sqlalchemy.engine.base.Engine.0x...b990 ()
2010-04-15 11:15:16,477 INFO sqlalchemy.engine.base.Engine.0x...b990 BEGIN
2010-04-15 11:15:16,478 INFO sqlalchemy.engine.base.Engine.0x...b990 SELECT
foo.id AS foo_id, foo.data AS foo_data
FROM foo
LIMIT 1 OFFSET 0
2010-04-15 11:15:16,478 INFO sqlalchemy.engine.base.Engine.0x...b990 ()
On Apr 15, 2010, at 11:00 AM, jo wrote:
> Hi all,
>
> ....
> Module sqlalchemy.engine.base:*1180* in |__execute_context
> ||context*.*parameters*[**0**]**,* context*=*context*)*|
> Module sqlalchemy.engine.base:*1249* in |_cursor_execute||
> self*.*_handle_dbapi_exception*(*e*,* statement*,* parameters*,* cursor*,*
> context*)*|
> Module sqlalchemy.engine.base:*1247* in |_cursor_execute|
> |self*.*dialect*.*do_execute*(*cursor*,* statement*,* parameters*,*
> context*=*context*)*|
> Module sqlalchemy.engine.default:*266* in |do_execute|
> <http://tg11.sferacarta.com:8000/operatore/save#>
> |cursor*.*execute*(*statement*,* parameters*)*|
> *IntegrityError: ('(IntegrityError) null value in column "id" violates
> not-null constraint\n', <bound method Controller.save of
> <sicer.BASE.controller.authentication.operatore.Controller object at
> 0x4e178d0>>) 'UPDATE anagrafica SET id=%(id)s, telefono=%(telefono)s,
> ts_ultima_modifica=%(ts_ultima_modifica)s, id_operatore=%(id_operatore)s,
> tipo=%(tipo)s WHERE anagrafica.id = %(anagrafica_id)s' {'ts_ultima_modifica':
> None, 'tipo': None, 'anagrafica_id': 141092, 'telefono': None, 'id': None,
> 'id_operatore': 1695}* |<< <http://tg11.sferacarta.com:8000/operatore/save#>
> context*.*cursor*,*
> context*.*statement*,*
> context*.*parameters*[**0**]**,*
> context*=*context*)*
> *if* context*.*compiled*:*| |<<
> <http://tg11.sferacarta.com:8000/operatore/save#>
> self.dialect.do_execute(cursor, statement, parameters, context=context)
> except Exception, e:
> self._handle_dbapi_exception(e, statement, parameters, cursor,
> context)
> raise
> | |<< <http://tg11.sferacarta.com:8000/operatore/save#>
> self.engine.logger.info("%r", parameters)
> try:
> self.dialect.do_execute(cursor, statement, parameters,
> context=context)
> except Exception, e:
> self._handle_dbapi_exception(e, statement, parameters, cursor,
> context)| |<< <http://tg11.sferacarta.com:8000/operatore/save#>
> *def* *do_execute**(**self**,* *cursor**,* *statement**,*
> *parameters**,* *context**=*None*)**:*
> cursor*.*execute*(*statement*,* parameters*)*
> *def* *is_disconnect**(**self**,* *e**)**:*|
>
> -----------------------------------------------------------------------
>
> I'm using column_prefix, but seems sa compiles this query without prefix,
> furthermore it try to update the primary key with a NULL value.
>
> *'UPDATE anagrafica SET id=%(id)s,
> telefono=%(telefono)s, ts_ultima_modifica=%(ts_ultima_modifica)s,
> id_operatore=%(id_operatore)s, tipo=%(tipo)s WHERE anagrafica.id =
> %(anagrafica_id)s'
>
> *| <http://tg11.sferacarta.com:8000/operatore/save#> *def*
> *do_execute**(**self**,* *cursor**,* *statement**,* *parameters**,*
> *context**=*None*)**:*
>
> cursor*.*execute*(*statement*,* parameters*)*
>
>
> *def* *is_disconnect**(**self**,* *e**)**:*|
> class Anagrafica():
> pass
> mapper(Anagrafica,
> tbl['anagrafica'],
> column_prefix = 'anagrafica_',
> extension=History(),
> )
>
> The migration from 0.3 to 0.6 is too hard. :-(
> j
>
>
>
>
>
>
>
> --
> 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.
>
--
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.