Implementation:Astronomer Astronomer cosmos MySQLUserPasswordProfileMapping
| Knowledge Sources | |
|---|---|
| Domains | Profile_Mapping, MySQL |
| Last Updated | 2026-02-07 17:00 GMT |
Overview
Concrete tool for mapping Airflow mysql connections to dbt mysql profiles provided by astronomer-cosmos.
Description
The MySQLUserPasswordProfileMapping maps an Airflow mysql connection to a dbt mysql profile. It translates connection parameters (host, login, password, schema, port, extras) into the YAML structure that dbt expects in `profiles.yml`. This is a community-contributed adapter (`is_community=True`). It maps host, port, user, password, and schema from the standard Airflow MySQL connection fields to the corresponding dbt mysql profile fields.
Usage
Use this profile mapping when configuring Cosmos to run dbt commands against a MySQL backend. Assign it to `ProfileConfig(profile_mapping=...)` when the target Airflow connection uses the `mysql` connection type.
Code Reference
Source Location
- Repository: Astronomer_Astronomer_cosmos
- File: cosmos/profiles/mysql/user_pass.py
Signature
class MySQLUserPasswordProfileMapping(BaseProfileMapping):
airflow_connection_type: str = "mysql"
dbt_profile_type: str = "mysql"
is_community: bool = True
Import
from cosmos.profiles.mysql import MySQLUserPasswordProfileMapping
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| conn_id | str | Yes | Airflow connection ID for MySQL |
Outputs
| Name | Type | Description |
|---|---|---|
| profile | dict | dbt profile YAML dictionary |
| env_vars | dict | Environment variables for secret fields |
Usage Examples
from cosmos.config import ProfileConfig
from cosmos.profiles.mysql import MySQLUserPasswordProfileMapping
profile_config = ProfileConfig(
profile_name="default",
target_name="dev",
profile_mapping=MySQLUserPasswordProfileMapping(conn_id="mysql_default"),
)