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 '<User at 0x7f20b4a3d9d0>' is already attached to session '1' (this is '2')
db_session_2.add(row)