dbcon.commit() try: dbcur.execute('SELECT admin_logged_in FROM players;') except sqlite3.OperationalError, e: if "column" in str(e): logger.info("Updating DB to include admin_logged_in column.") dbcur.execute('ALTER TABLE `players` ADD COLUMN `admin_logged_in`;') dbcur.execute('UPDATE `players` SET `admin_logged_in`=0;') dbcon.commit() dbcon.close() logger = logging.getLogger("starrypy.player_manager.manager") declarative_base = lambda cls: sqla_declarative_base(cls=cls) @declarative_base class Base(object): """ Add some default properties and methods to the SQLAlchemy declarative base. """ @property def columns(self): return [c.name for c in self.__table__.columns] @property def columnitems(self): return dict([(c, getattr(self, c)) for c in self.columns])
import json import os import pathlib import pickle import uuid from datetime import datetime, timezone from loguru import logger import numpy as np import sqlalchemy as sqla from sqlalchemy.ext.declarative import \ declarative_base as sqla_declarative_base from sqlalchemy.orm.attributes import flag_modified from sqlalchemy_utils import database_exists, create_database sqlalchemy_base = sqla_declarative_base() def gen_short_uuid(num_chars=None): num = uuid.uuid4().int alphabet = '23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' res = [] while num > 0: num, digit = divmod(num, len(alphabet)) res.append(alphabet[digit]) res2 = ''.join(reversed(res)) if num_chars is None: return res2 else: return res2[:num_chars]
impl = VARCHAR def process_bind_param(self, value, dialect): if value is not None: value = json.dumps(value) return value def process_result_value(self, value, dialect): if value is not None: value = json.loads(value) return value logger = logging.getLogger("starrypy.player_manager.manager") declarative_base = lambda cls: sqla_declarative_base(cls=cls) @declarative_base class Base(object): """ Add some default properties and methods to the SQLAlchemy declarative base. """ @property def columns(self): return [c.name for c in self.__table__.columns] @property def columnitems(self): return dict([(c, getattr(self, c)) for c in self.columns])
import sqlalchemy as sqla from sqlalchemy import Column, Unicode, String, Float, DECIMAL from sqlalchemy.ext.declarative import declarative_base as sqla_declarative_base BaseModel = sqla_declarative_base() class OtcAtmQuote(BaseModel): __tablename__ = 'otc_atm_quote' uuid = sqla.Column('uuid', sqla.Unicode, primary_key=True) varietyType = sqla.Column('variety_type', sqla.String) underlyer = sqla.Column('underlyer', sqla.String) valuationDate = sqla.Column('valuation_date', sqla.Date) optionType = sqla.Column('option_type', sqla.String) productType = sqla.Column('product_type', sqla.String) expireDate = sqla.Column('expire_date', sqla.Date) source = sqla.Column('source', sqla.String) legalEntityName = sqla.Column('legal_entity_name', sqla.String) askVol = sqla.Column('ask_vol', sqla.Float) bidVol = sqla.Column('bid_vol', sqla.Float) volEdge = sqla.Column('vol_edge', sqla.Float) ptm = sqla.Column('ptm', sqla.Float) updatedAt = sqla.Column('updated_at', sqla.DateTime) class Instrument(BaseModel): __tablename__ = 'instrument' instrumentId = sqla.Column('instrument_id', sqla.String, primary_key=True) instrumentType = sqla.Column('instrument_type', sqla.String) updatedAt = sqla.Column('updated_at', sqla.DateTime) listedDate = sqla.Column('listed_date', sqla.Date)
# -*- coding: utf-8 -*- import os import sqlalchemy as sqla from sqlalchemy.ext.declarative import declarative_base as sqla_declarative_base Base = sqla_declarative_base() class Lab(Base): __tablename__ = 'online_databases' id = sqla.Column('id', sqla.Integer, primary_key=True) name = sqla.Column('name', sqla.String, nullable=False, unique=True) identifier = sqla.Column('identifier', sqla.String, nullable=False) url = sqla.Column('url', sqla.String) class Page(Base): __tablename__ = 'pages' id = sqla.Column('id', sqla.Integer, primary_key=True) online_database_id = sqla.Column('online_database_id', None, sqla.ForeignKey('online_databases.id')) source_url = sqla.Column('source_url', sqla.String, nullable=False, unique=True) prev_url = sqla.Column('prev_url', sqla.String) status = sqla.Column('status', sqla.Integer) fetched_at = sqla.Column('fetched_at', sqla.TIMESTAMP) file = sqla.Column('file', sqla.String) post_time = sqla.Column('post_time', sqla.TIMESTAMP)
def declarative_base(cls): return sqla_declarative_base(cls=cls)
import sqlalchemy as sqla import sqlalchemy.orm as sqlorm from sqlalchemy.ext.declarative import declarative_base as sqla_declarative_base Base = sqla_declarative_base() engine = sqla.create_engine('postgresql://*****:*****@ec2-54-225-89-169.compute-1.amazonaws.com:5432/datc4qcfbqcni', echo=True) class Blog(Base): __tablename__ = 'blog' id = sqla.Column('id', sqla.Integer, primary_key=True) title = sqla.Column('title', sqla.String) content = sqla.Column('content', sqla.String) tags = sqla.Column('tags', sqla.String) Base.metadata.bind = engine Base.metadata.create_all() Session = sqlorm.scoped_session(sqlorm.sessionmaker(bind=engine)) def show_entry(): session = Session() try: entry = session.query(Blog).order_by(Blog.id.desc()).all() finally: session.close() return entry def add_entry(title, content, tags): session = Session()