**Apache Airflow version**:
2.0.1

**Kubernetes version (if you are using kubernetes)** (use `kubectl version`):
Not applicable

**Environment**:

- **Cloud provider or hardware configuration**: None
- **OS** (e.g. from /etc/os-release): Ubuntu
- **Kernel** (e.g. `uname -a`): 
- **Install tools**:
- **Others**:

**What happened**:

1. Ran airflow db init on mysql in parallel in 2 command lines. Only one command did the migrations, the other one waited. But connections were inserted twice. I would like them not to be added twice.
2. Ran airflow db init on postgres in parallel in 2 command lines. Both command lines started doing migrations on the same db in parallel. I would like one command to run, the other to wait.

**What you expected to happen**:

1. For MySQL. Connections and other config objects to be inserted only once.
2. For Postgres. Only one migration can be performed in the same time for the same db.

**How to reproduce it**:
Scenario 1:
Setup Airflow so that it uses MySQL.
Run `airflow init db` in 2 command lines, side by side.

Scenario 2:
Setup Airflow so that it uses Postgres.
Run `airflow init db` in 2 command lines, side by side.

**Anything else we need to know**:
This problem occurs every time.
airflow/utils/db.py
"""Initialize Airflow database."""
    with create_global_lock(session=session):
        upgradedb()
        if conf.getboolean('core', 'LOAD_DEFAULT_CONNECTIONS'):
            create_default_connections()
        dagbag = DagBag()
        
        dagbag.sync_to_db()
        
        DAG.deactivate_unknown_dags(dagbag.dags.keys())
        from flask_appbuilder.models.sqla import Base
        Base.metadata.create_all(settings.engine)
def _get_alembic_config():
    from alembic.config import Config
    current_dir = os.path.dirname(os.path.abspath(__file__))
    package_dir = os.path.normpath(os.path.join(current_dir, '..'))
    directory = os.path.join(package_dir, 'migrations')
    config = Config(os.path.join(package_dir, 'alembic.ini'))
    config.set_main_option('script_location', directory.replace('%', '%%'))
    config.set_main_option('sqlalchemy.url', settings.SQL_ALCHEMY_CONN.replace('%', '%%'))
    return config
def check_migrations(timeout):