class PooledPostgreSQL(PostgreSQL): def setUp(self): os.system( "createdb peeweedbevolve_test && psql peeweedbevolve_test -c 'create extension IF NOT EXISTS hstore;' > /dev/null 2> /dev/null" ) self.db = PooledPostgresqlExtDatabase('peeweedbevolve_test') self.db.connect() peeweedbevolve.clear() def tearDown(self): self.db.manual_close() os.system('dropdb peeweedbevolve_test')
class PostgreSQLProvider(): def __init__(self, logger=None): self.database = PooledPostgresqlExtDatabase( database=os.environ.get('DB_NAME'), user=os.environ.get('DB_USER'), password=os.environ.get('DB_PASSWORD'), host=os.environ.get('DB_HOST'), port=os.environ.get('DB_PORT'), max_connections=os.environ.get('DB_POOL_MAX_CONNECTIONS'), stale_timeout=os.environ.get('DB_POOL_TIMEOUT'), ) self.open_connection() self.logger = logger def __del__(self): self.close_connection() def open_connection(self): self.database.connect(reuse_if_open=True) print('Connected to PostgreSQL database') def close_connection(self): self.database.close() print('Connection to PostgreSQL database closed')
server_side_cursors=True, max_connections=2000, stale_timeout=300) # 5 min logger = logging.getLogger('snap.models') logger.setLevel(logging.ERROR) class Jobs(peewee.Model): title = peewee.CharField() category = peewee.CharField() status = peewee.CharField() location = peewee.CharField() class Meta: database = database primary_key = False schema = 'schema_snap' if __name__ == "__main__": # Connect to our database. database.connect() # Create schemas try: database.create_tables([Jobs], safe=True) except peewee.OperationalError as e: logger.warn('Creating db scheme. Failed to create table Jobs' ' or it already exist.')