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.