from sqlalchemy import ( create_engine, Column, Integer, String, ) from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) user_name = Column(String(128), nullable=False) email = Column(String(100), nullable=False) status = Column(Integer, nullable=False) db_url = 'postgresql://sugiana:a@localhost/test' engine = create_engine(db_url) factory = sessionmaker(bind=engine) db_session_1 = factory() db_session_2 = factory() q = db_session_1.query(User).filter_by(user_name='admin') row = q.first() row.email = 'admin@local.net' db_session_1.add(row) row.status = 2 # sqlalchemy.exc.InvalidRequestError: Object '' is already attached to session '1' (this is '2') db_session_2.add(row)