On Wed, Mar 25, 2020, at 6:27 AM, Javier Collado Jiménez wrote:
> Hello, 
> I'm having a problem trying to cleanup sqlalchemy objects. My application has 
> a thread which handles DB connections. In some cases the thread dies and I 
> want to do a cleanup so, next time the thread is started it would be able to 
> reconnect again.
> The steps I tried are:
>  self.metadata.clear()
>  self.engine.dispose()
>  self.session.close()
>  self.conn.close()
> But when I start a new thread, errors like this appear:
> sqlalchemy.exc.ArgumentError: Column object 'column' already assigned to 
> Table 'table'

you should not be calling metadata.clear() and it looks like you are doing 
something where you are building Table objects on the fly, re-using the same 
Column objects a second time, leading to the error you are seeing. There should 
be a single MetaData object that is not part of an object, e.g. it's a global 
variable in your program (e.g. not "self.metadata").

Similarly for the engine, there should not be a "self.engine", there should be 
a single Engine object that is also a global variable in your program. It is 
also threadsafe and can be shared among multiple threads.


> 

> --
>  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 view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/74117457-9968-4aa2-afa3-8ccb91e86937%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/sqlalchemy/74117457-9968-4aa2-afa3-8ccb91e86937%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 sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/c9216b53-fcc1-4782-9e18-be7c500f255f%40www.fastmail.com.

Reply via email to