добавляет dag
This commit is contained in:
54
scripts/init_airflow.sh
Normal file
54
scripts/init_airflow.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "Initializing Airflow..."
|
||||
|
||||
# Инициализация БД (только если первый запуск)
|
||||
airflow db migrate
|
||||
|
||||
# Создание пользователя-админа
|
||||
if ! airflow users list | grep -q "${AIRFLOW_ADMIN_EMAIL}"; then
|
||||
echo "🧑💻 Creating Airflow admin user..."
|
||||
airflow users create \
|
||||
--username "${AIRFLOW_ADMIN_USER}" \
|
||||
--firstname "${AIRFLOW_ADMIN_FIRSTNAME}" \
|
||||
--lastname "${AIRFLOW_ADMIN_LASTNAME}" \
|
||||
--role Admin \
|
||||
--email "${AIRFLOW_ADMIN_EMAIL}" \
|
||||
--password "${AIRFLOW_ADMIN_PASSWORD}"
|
||||
else
|
||||
echo "✅ Admin user already exists."
|
||||
fi
|
||||
|
||||
# Создание подключения к Neo4j
|
||||
if ! airflow connections list | grep -q "${NEO4J_CONN_ID}"; then
|
||||
echo "🔌 Creating Neo4j connection..."
|
||||
airflow connections add "${NEO4J_CONN_ID}" \
|
||||
--conn-type neo4j \
|
||||
--conn-host "${NEO4J_URI}" \
|
||||
--conn-login "${NEO4J_USER}" \
|
||||
--conn-password "${NEO4J_PASSWORD}" \
|
||||
--conn-port "${NEO4J_PORT}"
|
||||
else
|
||||
echo "✅ Neo4j connection already exists."
|
||||
fi
|
||||
|
||||
# Установка Airflow Variables из .env
|
||||
echo "🧩 Setting Airflow Variables..."
|
||||
|
||||
# Helper для установки переменной, если её ещё нет
|
||||
function set_variable() {
|
||||
local key=$1
|
||||
local value=$2
|
||||
if ! airflow variables get "$key" &>/dev/null; then
|
||||
airflow variables set "$key" "$value"
|
||||
echo " ➕ $key = $value"
|
||||
else
|
||||
echo " ✅ $key already exists"
|
||||
fi
|
||||
}
|
||||
|
||||
set_variable "CONN_ID" "${NEO4J_CONN_ID}"
|
||||
|
||||
echo "🎉 Initialization complete! Starting webserver..."
|
||||
exec airflow webserver
|
||||
Reference in New Issue
Block a user