Hi Mike, My use case involves receiving a lot of data over the network, processing on the model and persisting them. Therefore, using the manual approach would be quite inefficient.
Currently I have to use raw sql and session.execute(), is this the only way? Is there any other way for example to custom a ColumnType to change the UPDATE sql emitted? On Monday, September 14, 2020 at 12:18:49 AM UTC+7 Mike Bayer wrote: > you would need to accomplish this manually. > > > existing_obj = session.query(MyClass).get(obj.id) > if existing_obj is not None: > existing_obj.links.extend(obj.links) > obj = session.merge(obj) > > > > On Sat, Sep 12, 2020, at 3:45 AM, sonsshh wrote: > > Hi, > > I'm trying to change the behavior of Postgres ARRAY type when calling > > *session.merge(obj)* > > where *obj* has a *links *ARRAY(Text) column. > > What I want is as below: > *obj = Obj(links=['link2'],...)* > * in DB I have obj row already and obj.links=['link1']* > * session.merge(obj)* > * session.commit() updates obj.links=['link1', 'link2'] instead of > overwriting obj.links=['link2']* > > I want this sql to be emitted when updating this field. > > * CASE WHEN obj.links IS NULL * > * OR NOT ARRAY[**obj.links* > *] @> %(links)s THEN array_cat(**obj.links* > *, %(links)s) ELSE **obj.links** END* > > I've been researching but still got no clue where to start. > Is there anyone who can help? > > Thanks a lot, > > > -- > SQLAlchemy - > The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/860da96c-7295-40bf-a436-027e27c1d6d6n%40googlegroups.com > > <https://groups.google.com/d/msgid/sqlalchemy/860da96c-7295-40bf-a436-027e27c1d6d6n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/1f81a3cf-3179-4ac9-bc39-93087e088c3en%40googlegroups.com.
