Thank you for such a prompt response.
Per the excellent documentation I added the following four lines to
my .py script:
import logging
logging.basicConfig()
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
logging.getLogger('sqlalchemy.orm.unitofwork').setLevel
(logging.DEBUG)
And received the following log output:
INFO:sqlalchemy.engine.base.Engine.0x...0350:
SELECT a.attname,
pg_catalog.format_type(a.atttypid, a.atttypmod),
(SELECT substring(d.adsrc for 128) FROM
pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND
a.atthasdef)
AS DEFAULT,
a.attnotnull, a.attnum, a.attrelid as table_oid
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = (
SELECT c.oid
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid =
c.relnamespace
WHERE (pg_catalog.pg_table_is_visible(c.oid))
AND c.relname = %(table_name)s AND c.relkind in
('r','v')
) AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
INFO:sqlalchemy.engine.base.Engine.0x...0350:{'table_name':
'products'}
INFO:sqlalchemy.engine.base.Engine.0x...0350:
SELECT t.typname as "name",
pg_catalog.format_type(t.typbasetype, t.typtypmod)
as "attype",
not t.typnotnull as "nullable",
t.typdefault as "default",
pg_catalog.pg_type_is_visible(t.oid) as "visible",
n.nspname as "schema"
FROM pg_catalog.pg_type t
LEFT JOIN pg_catalog.pg_namespace n ON n.oid =
t.typnamespace
LEFT JOIN pg_catalog.pg_constraint r ON t.oid =
r.contypid
WHERE t.typtype = 'd'
INFO:sqlalchemy.engine.base.Engine.0x...0350:{}
INFO:sqlalchemy.engine.base.Engine.0x...0350:
SELECT attname FROM pg_attribute
WHERE attrelid = (
SELECT indexrelid FROM pg_index i
WHERE i.indrelid = %(table)s
AND i.indisprimary = 't')
ORDER BY attnum
INFO:sqlalchemy.engine.base.Engine.0x...0350:{'table': 16726}
INFO:sqlalchemy.engine.base.Engine.0x...0350:
SELECT conname, pg_catalog.pg_get_constraintdef(oid, true)
as condef
FROM pg_catalog.pg_constraint r
WHERE r.conrelid = %(table)s AND r.contype = 'f'
ORDER BY 1
INFO:sqlalchemy.engine.base.Engine.0x...0350:{'table': 16726}
INFO:sqlalchemy.engine.base.Engine.0x...0350:UPDATE products SET title=
%(title)s WHERE products.name = %(name_1)s
INFO:sqlalchemy.engine.base.Engine.0x...0350:{'title':
'updated_title', 'name_1': 'test'}
INFO:sqlalchemy.engine.base.Engine.0x...0350:COMMIT
On Jan 14, 7:36 am, Michael Bayer <[email protected]> wrote:
> that should be fine, what does your log output say ?
>
> On Jan 14, 2009, at 12:38 AM, atomburner wrote:
>
>
>
> > Mr. Bayer, you know entirely too much about all kinds of databases.
>
> > A follow-up question to your erudite comment (and let me first say
> > that I love sqlalchemy and have spent a good amount of time immersed
> > in its documentation before posting):
>
> > I tried running an update query of the form
>
> > conn.execute(tbl.update().where(tbl.c.name=='test').values
> > (title='updated_title'))
>
> > FWIW the column was setup as follows (in PostgreSQL 8.2):
>
> > Column('updated', DateTime,onupdate=func.now())
>
> > After running above code and requerying the db, the 'updated' column
> > is still null.
>
> > I also tried using func.current_timestamp() with no luck.
>
> > Any tips you are able to provide are greatly appreciated.
>
> > Best regards,
> > Atom
>
> > On Dec 6 2008, 6:48 am, Michael Bayer <[email protected]>
> > wrote:
> >> that is the correct syntax. It will take effect any time an update()
> >> construct is used or when the ORM updates a row. Becauseonupdateis
> >> not aDDL-side construct, it will not take effect if you use a plain
> >> text UPDATE statement or if the update is otherwise not emitted by
> >> the
> >> SQLAlchemy application. The PassiveDefault, since it does represent
> >>DDL, will work in this manner, but only if the table was created
> >> using
> >> this table construct.
>
> >> On Dec 6, 2008, at 4:50 AM, jo wrote:
>
> >>> Hi all,
>
> >>> I created a table with the following column:
>
> >>> Column('last_updated', DateTime,
> >>> PassiveDefault(func.current_timestamp
> >>> ()),onupdate=func.current_timestamp())
>
> >>> Maybe I don't understand howonupdateworks.
> >>> I would like to have this column to be changed every time the row is
> >>> updated,
> >>> but it doesn't work.
>
> >>> thank you for any help
>
> >>> 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
-~----------~----~----~----~------~----~------~--~---