models.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. """
  2. Benchmark models.
  3. """
  4. import json
  5. import os
  6. import psycopg2
  7. from collections import Iterable
  8. from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
  9. from sqlalchemy.orm import sessionmaker
  10. from sqlalchemy.pool import QueuePool
  11. from sqlalchemy.ext.declarative import declarative_base, DeclarativeMeta
  12. def get_conn():
  13. return psycopg2.connect(
  14. user='benchmarkdbuser',
  15. password='benchmarkdbpass',
  16. host='tfb-database',
  17. port='5432',
  18. database='hello_world')
  19. conn_pool = QueuePool(get_conn, pool_size=100, max_overflow=25, echo=False)
  20. pg = create_engine('postgresql://', pool=conn_pool)
  21. DBSession = sessionmaker(bind=pg)()
  22. metadata = MetaData()
  23. DatabaseBase = declarative_base()
  24. class World(DatabaseBase):
  25. __tablename__ = 'world'
  26. id = Column('id', Integer, primary_key=True)
  27. randomNumber = Column(
  28. 'randomnumber', Integer, nullable=False, server_default='0')
  29. def __json__(self, request=None):
  30. return {'id': self.id, 'randomNumber': self.randomNumber}
  31. class Fortune(DatabaseBase):
  32. __tablename__ = 'fortune'
  33. id = Column('id', Integer, primary_key=True)
  34. message = Column('message', String, nullable=False)
  35. def __json__(self):
  36. return {'id': self.id, 'message': self.message}