예제 #1
0
파일: db.py 프로젝트: boilad/airflow
def upgradedb(session=None):
    """Upgrade the database."""
    # alembic adds significant import time, so we import it lazily
    from alembic import command

    config = _get_alembic_config()

    config.set_main_option('sqlalchemy.url',
                           settings.SQL_ALCHEMY_CONN.replace('%', '%%'))

    errors_seen = False
    for err in _check_migration_errors(session=session):
        if not errors_seen:
            log.error("Automatic migration is not available")
            errors_seen = True
        log.error("%s", err)

    if errors_seen:
        exit(1)

    with create_global_lock(session=session, pg_lock_id=2,
                            lock_name="upgrade"):
        log.info("Creating tables")
        command.upgrade(config, 'heads')
    add_default_pool_if_not_exists()
예제 #2
0
파일: db.py 프로젝트: boilad/airflow
def resetdb(session=None):
    """Clear out the database"""
    log.info("Dropping tables that exist")

    connection = settings.engine.connect()

    with create_global_lock(session=session, pg_lock_id=4, lock_name="reset"):
        drop_airflow_models(connection)
        drop_flask_models(connection)

    initdb(session=session)
예제 #3
0
파일: db.py 프로젝트: Walderman/airflow
def initdb(session=None):
    """Initialize Airflow database."""
    with create_global_lock(session=session):
        upgradedb()

        if conf.getboolean('core', 'LOAD_DEFAULT_CONNECTIONS'):
            create_default_connections()

        dagbag = DagBag()
        # Save DAGs in the ORM
        dagbag.sync_to_db()

        # Deactivate the unknown ones
        DAG.deactivate_unknown_dags(dagbag.dags.keys())

        from flask_appbuilder.models.sqla import Base

        Base.metadata.create_all(settings.engine)
예제 #4
0
def upgradedb(session=None):
    """Upgrade the database."""
    # alembic adds significant import time, so we import it lazily
    from alembic import command

    log.info("Creating tables")
    config = _get_alembic_config()

    config.set_main_option('sqlalchemy.url', settings.SQL_ALCHEMY_CONN.replace('%', '%%'))
    # check automatic migration is available
    errs = auto_migrations_available()
    if errs:
        for err in errs:
            log.error("Automatic migration is not available\n%s", err)
        return
    with create_global_lock(session=session, pg_lock_id=2, lock_name="upgrade"):
        command.upgrade(config, 'heads')
    add_default_pool_if_not_exists()