Skip to content

Instantly share code, notes, and snippets.

@matutter
Last active January 26, 2023 03:56
Show Gist options
  • Select an option

  • Save matutter/4bfc17f772f1dbc936646fbaf5204cdd to your computer and use it in GitHub Desktop.

Select an option

Save matutter/4bfc17f772f1dbc936646fbaf5204cdd to your computer and use it in GitHub Desktop.
Shows a bulk update using SQLAlchemy ORM.
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Boolean, String
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///:memory:', echo=True)
session = sessionmaker(bind=engine)()
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
name = Column(String, primary_key=True)
enabled = Column(Boolean)
def __repr__(self):
return f'User({self.name}, enabled={self.enabled})'
Base.metadata.create_all(engine)
session.add(User(name='a', enabled=True))
session.add(User(name='b', enabled=False))
session.add(User(name='c', enabled=True))
session.commit()
enabled = ['a', 'b']
session.query(User).update({User.enabled:User.name.in_(enabled)}, synchronize_session=False)
for user in session.query(User):
print(f'{user}')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment