Esempio n. 1
0
def run_migrations_online():
    """Run migrations in 'online' mode.

    In this scenario we need to create an Engine
    and associate a connection with the context.

    """
    mysql_conf = cf.get_mysql_config()
    config.set_main_option(
        'sqlalchemy.url', 'mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8mb4' %
        (mysql_conf['user'], mysql_conf['password'], mysql_conf['host'],
         mysql_conf['port'], mysql_conf['db']))
    target_metadata = base_model.BaseModel.metadata

    connectable = engine_from_config(config.get_section(
        config.config_ini_section),
                                     prefix='sqlalchemy.',
                                     poolclass=pool.NullPool)

    with connectable.connect() as connection:
        context.configure(connection=connection,
                          target_metadata=target_metadata)

        with context.begin_transaction():
            context.run_migrations()
Esempio n. 2
0
def run_migrations_offline():
    """Run migrations in 'offline' mode.

    This configures the context with just a URL
    and not an Engine, though an Engine is acceptable
    here as well.  By skipping the Engine creation
    we don't even need a DBAPI to be available.

    Calls to context.execute() here emit the given string to the
    script output.

    """

    mysql_conf = cf.get_mysql_config()
    config.set_main_option(
        'sqlalchemy.url', 'mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8mb4' %
        (mysql_conf['user'], mysql_conf['password'], mysql_conf['host'],
         mysql_conf['port'], mysql_conf['db']))
    target_metadata = base_model.BaseModel.metadata

    url = config.get_main_option("sqlalchemy.url")
    context.configure(url=url,
                      target_metadata=target_metadata,
                      literal_binds=True)

    with context.begin_transaction():
        context.run_migrations()
Esempio n. 3
0
File: db.py Progetto: yujiye/Codes
def connect_db():
    (DB_HOST, DB_NAME, DB_USER, DB_PASSWD) = config.get_mysql_config()
    conn = pymysql.connect(host=DB_HOST,
                           user=DB_USER,
                           password=DB_PASSWD,
                           db=DB_NAME,
                           charset='utf8mb4',
                           cursorclass=pymysql.cursors.DictCursor)
    #conn.execute("set sql_safe_updates=1")
    return conn
Esempio n. 4
0
File: db.py Progetto: yujiye/Codes
def connect_torndb():
    (DB_HOST, DB_NAME, DB_USER, DB_PASSWD) = config.get_mysql_config()
    conn = torndb.Connection(DB_HOST,
                             DB_NAME,
                             DB_USER,
                             DB_PASSWD,
                             time_zone='+8:00',
                             charset='utf8mb4')
    #conn.execute("set sql_safe_updates=1")
    return conn
Esempio n. 5
0
from flask import Flask
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from config import load_config, get_log_folder, get_mysql_config
from pbu import Logger
from storage.shared import db
from api.cli_commands import ComputeMetricsCommand

# load config from .env file
config = load_config()

# ---- database and stores ----

host, db_name, username, password = get_mysql_config()
uri = 'mysql://{0}:{1}@{2}/{3}'.format(username, password, host, db_name)

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = uri
db.init_app(app)
migrate = Migrate()
migrate.init_app(app, db)

manager = Manager(app)
manager.add_command('db', MigrateCommand)
manager.add_command('metrics', ComputeMetricsCommand)

if __name__ == '__main__':

    logger = Logger("DB", log_folder=get_log_folder())
    manager.run()
Esempio n. 6
0
def connect_tshbao():

    (DB_HOST, DB_NAME, DB_USER, DB_PASSWD) = config.get_mysql_config()
    return torndb.Connection(DB_HOST, DB_NAME, DB_USER, DB_PASSWD)