models.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. """
  2. Benchmark models.
  3. """
  4. from sqlalchemy import Column, Integer, MetaData, String, create_engine
  5. from sqlalchemy.orm import declarative_base, sessionmaker
  6. from sqlalchemy.pool import QueuePool
  7. def get_engine(settings):
  8. return create_engine(
  9. settings["sqlalchemy.url"],
  10. poolclass=QueuePool,
  11. pool_size=100,
  12. max_overflow=25,
  13. enable_from_linting=False,
  14. future=True,
  15. )
  16. def get_session_factory(engine):
  17. Session = sessionmaker(bind=engine, autoflush=False, future=True)
  18. return Session
  19. metadata = MetaData()
  20. Base = declarative_base()
  21. class World(Base):
  22. __tablename__ = "world"
  23. id = Column("id", Integer, primary_key=True)
  24. randomNumber = Column("randomnumber", Integer, nullable=False, server_default="0")
  25. def __json__(self, request=None):
  26. return {"id": self.id, "randomNumber": self.randomNumber}
  27. class Fortune(Base):
  28. __tablename__ = "fortune"
  29. id = Column("id", Integer, primary_key=True)
  30. message = Column("message", String, nullable=False)
  31. def __json__(self):
  32. return {"id": self.id, "message": self.message}