Beispiel #1
0
def bootstrap_dagbag(session: Session = NEW_SESSION):

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

    # Deactivate the unknown ones
    DAG.deactivate_unknown_dags(dagbag.dags.keys(), session=session)
Beispiel #2
0
def initdb():
    """Initialize Airflow database."""
    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)  # pylint: disable=no-member
Beispiel #3
0
def initdb():
    """
    Initialize Airflow database.
    """
    upgradedb()

    create_default_connections()

    dagbag = DagBag()
    # Save individual DAGs in the ORM
    for dag in dagbag.dags.values():
        dag.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)  # pylint: disable=no-member
Beispiel #4
0
def initdb(session=None):
    """Initialize Airflow database."""
    upgradedb(session=session)

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

    with create_global_lock(session=session):

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

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

        from flask_appbuilder.models.sqla import Base

        Base.metadata.create_all(settings.engine)
Beispiel #5
0
def refresh_dagbag(dag_bag=None, dag_id=None, force_fetch=False):
    if not dag_bag:
        dag_bag = DagBag(store_serialized_dags=False)
    try:
        # Use bulk sync to refresh DAGs (implemented by https://github.com/apache/airflow/pull/7477)
        dag_bag.sync_to_db()
    except AttributeError:
        # Bulk sync not possible
        if dag_id:
            dag = dag_bag.get_dag(dag_id)
            if dag:
                dag.sync_to_db()
            else:
                if force_fetch:
                    # TODO: not possible to update in-memory dagbag instance
                    pass
                if not force_fetch or not dag_bag.get_dag(dag_id):
                    print(f'++++++++Deactivating unknown DAGs+++++++')
                    # DAG is missing in the DagBag
                    # probably since it's disabled because it's unapproved.
                    # in that case, the DB DAG also needs to be deactivated
                    DAG.deactivate_unknown_dags(dag_bag.dag_ids)
        else:
            raise ValueError('Pass "dag_id" to refresh!')