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()
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)
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)
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()