I moved `db.session.commit()` outside the loop. That seemed to fix the 
error. I'll post an update if I get more errors.

On Wednesday, December 20, 2017 at 6:43:05 PM UTC-5, Lele Gaifax wrote:
>
> Tom Tanner <dontsende...@gmail.com <javascript:>> writes: 
>
> > I want to query rows and copy them while changing an attribute of each. 
> > Here's my code. 
> > 
> >  colObjs= db.session.query(Column).filter_by(chart_id=oldChartID).all() 
> >  for colObj in colObjs: 
> >    make_transient(colObj) 
> >    print colObj.id 
> >    del colObj.id 
> >    colObj.chart_id= newChartID 
> >    db.session.add(colObj) 
> >    db.session.commit() 
> > 
> > In this example, `colObjs` has two objects. 
>
> Not sure about what causes that, but maybe you just need to commit once, 
> at 
> the end of the loop, that is something like 
>
>     colObjs= db.session.query(Column).filter_by(chart_id=oldChartID).all() 
>     for colObj in colObjs: 
>         make_transient(colObj) 
>         print colObj.id 
>         del colObj.id 
>         colObj.chart_id= newChartID 
>         db.session.add(colObj) 
>     # Single commit, when the loop above exits 
>     db.session.commit() 
>
> ciao, lele. 
> -- 
> nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri 
> real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia. 
> le...@metapensiero.it <javascript:>  |                 -- Fortunato 
> Depero, 1929. 
>
>

-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to