# Duplicate models of the same table need another base declaration # so that they have a separate MetaData instance OwnersBase = declarative_base() db_url = '{dialect}://{user}:{passwd}@{host}:{port}/{dbname}'.format( dialect = config.get( 'a2', 'dialect' ), user = config.get( 'a2', 'username' ), passwd = config.get( 'a2', 'password' ), host = config.get( 'a2', 'host' ), port = config.get( 'a2', 'port' ), dbname = config.get( 'a2', 'dbname' ), ) engine = create_engine( db_url, echo=config.getboolean( 'a2', 'debug' ), pool_recycle=config.getint( 'a2', 'pool_recycle' ), ) Session = sessionmaker( bind=engine ) def _localize( dt ): if dt is None: return dt timezone = pytz.timezone( 'US/Pacific' ) if type( dt ) is date: dt = datetime( *(dt.timetuple()[:3]) ) return pytz.utc.normalize( timezone.localize( dt ) ).replace( tzinfo=None ) class Account( Base ):
from sqlalchemy.orm import sessionmaker, relationship, backref Base = declarative_base() db_url = '{dialect}://{user}:{passwd}@{host}:{port}/{dbname}'.format( dialect=config.get('touchbizdb', 'dialect'), user=config.get('touchbizdb', 'username'), passwd=config.get('touchbizdb', 'password'), host=config.get('touchbizdb', 'host'), port=config.get('touchbizdb', 'port'), dbname=config.get('touchbizdb', 'dbname'), ) engine = create_engine( db_url, echo=config.getboolean('touchbizdb', 'debug'), pool_recycle=config.getint('touchbizdb', 'pool_recycle'), ) Session = sessionmaker(bind=engine) class Touchbiz(Base): __tablename__ = 'sales_touchbiz' __table_args__ = {'mysql_engine': 'InnoDB'} acct_id = Column(MEDIUMINT(unsigned=True), primary_key=True) sales_rep_id = Column(MEDIUMINT(unsigned=True), ForeignKey('sales_reps.id')) created = Column(DateTime, primary_key=True) modified = Column(DateTime)
# Duplicate models of the same table need another base declaration # so that they have a separate MetaData instance OwnersBase = declarative_base() db_url = '{dialect}://{user}:{passwd}@{host}:{port}/{dbname}'.format( dialect = config.get( 'tracerdb', 'dialect' ), user = config.get( 'tracerdb', 'username' ), passwd = config.get( 'tracerdb', 'password' ), host = config.get( 'tracerdb', 'host' ), port = config.get( 'tracerdb', 'port' ), dbname = config.get( 'tracerdb', 'dbname' ), ) engine = create_engine( db_url, echo=config.getboolean( 'tracerdb', 'debug' ), pool_recycle=config.getint( 'tracerdb', 'pool_recycle' ), ) Session = sessionmaker( bind=engine ) class TracerBullet( Base): __tablename__ = 'tracer_bullet' __table_args__ = {'mysql_engine':'InnoDB'} cluster = Column( String(length=20),primary_key=True ) index_type = Column( String(length=20),primary_key=True ) applies_start_time = Column( DateTime ,primary_key=True) status = Column( String(length=20) ) run_start_time = Column( DateTime )
# Duplicate models of the same table need another base declaration # so that they have a separate MetaData instance OwnersBase = declarative_base() db_url = '{dialect}://{user}:{passwd}@{host}:{port}/{dbname}'.format( dialect = config.get( 'salesorder', 'dialect' ), user = config.get( 'salesorder', 'username' ), passwd = config.get( 'salesorder', 'password' ), host = config.get( 'salesorder', 'host' ), port = config.get( 'salesorder', 'port' ), dbname = config.get( 'salesorder', 'dbname' ), ) engine = create_engine( db_url, echo=config.getboolean( 'salesorder', 'debug' ), pool_recycle=config.getint( 'salesorder', 'pool_recycle' ), ) Session = sessionmaker( bind=engine ) MDB = Masterdb( CONNECTION_URL_FORMAT % {'dialect':config.get( 'masterdb', 'dialect' ), 'host':config.get( 'masterdb', 'host' ), 'user':config.get( 'masterdb', 'username' ), 'password':config.get( 'masterdb', 'password' ), 'dbname':config.get( 'masterdb', 'dbname' ), 'port':config.get( 'masterdb', 'port' )}) class Salesorder( Base ): __tablename__ = 'sales_order' __table_args__ = {'mysql_engine':'InnoDB'} order_id = Column( Integer, primary_key=True )
" """ from datetime import datetime, date from decimal import Decimal from flask import Flask, url_for from flask.json import JSONEncoder from law import config from law.web import views, subscription, volumes, salesdash, touchbiz, salesorder, userinfo, tracer, \ cluster from law.util.adb import Session, AccountState, Tier from law.util.lawdb import db_url, db, security from flask.ext.login import current_user, current_app, login_user app = Flask(config.get('webapp', 'name')) app.debug = config.getboolean('webapp', 'debug') # Blueprints and top-level routes app.register_blueprint(views.blueprint) app.register_blueprint(subscription.views.blueprint, url_prefix='/subscription') app.register_blueprint(volumes.views.blueprint, url_prefix='/volumes') app.register_blueprint(salesdash.views.blueprint, url_prefix='/sales') app.register_blueprint(userinfo.views.blueprint, url_prefix='/user') app.register_blueprint(touchbiz.views.blueprint, url_prefix='/touchbiz') app.register_blueprint(salesorder.views.blueprint, url_prefix='/salesorder') app.register_blueprint(tracer.views.blueprint, url_prefix='/tracer') app.register_blueprint(cluster.views.blueprint, url_prefix='/cluster') # API routes