#!/bin/bash # Arcádia Suite — Apache Superset Init Script # Executado ao iniciar o container set -e SUPERSET_ADMIN_USER="${SUPERSET_ADMIN_USER:-admin}" SUPERSET_ADMIN_EMAIL="${SUPERSET_ADMIN_EMAIL:-admin@arcadia.app}" SUPERSET_ADMIN_PASSWORD="${SUPERSET_ADMIN_PASSWORD:-arcadia2026}" ARCADIA_DB_URL="${ARCADIA_DATABASE_URL:-postgresql://arcadia:arcadia123@db:5432/arcadia}" echo "[Superset Init] Aguardando PostgreSQL..." until python -c " import psycopg2, os, sys, re try: # Health check no banco 'postgres' (sempre existe), não no 'superset' que ainda não existe url = os.environ.get('DATABASE_URL', 'postgresql://arcadia:SuaSenhaSegura@db:5432/superset') check_url = re.sub(r'/[^/?]+(\?.*)?$', '/postgres', url) psycopg2.connect(check_url) except Exception: sys.exit(1) " 2>/dev/null; do sleep 2 done echo "[Superset Init] PostgreSQL disponível!" echo "[Superset Init] Criando banco superset se necessário..." python - <<'DBEOF' import psycopg2, os, re url = os.environ.get('DATABASE_URL', 'postgresql://arcadia:SuaSenhaSegura@db:5432/superset') conn_url = re.sub(r'/[^/?]+(\?.*)?$', '/postgres', url) conn = psycopg2.connect(conn_url) conn.autocommit = True cur = conn.cursor() cur.execute("SELECT 1 FROM pg_database WHERE datname = 'superset'") if not cur.fetchone(): cur.execute("CREATE DATABASE superset") print("[Superset Init] Banco 'superset' criado.") else: print("[Superset Init] Banco 'superset' já existe.") conn.close() DBEOF echo "[Superset Init] Rodando migrações do banco..." superset db upgrade echo "[Superset Init] Criando admin..." superset fab create-admin \ --username "${SUPERSET_ADMIN_USER}" \ --firstname "Arcádia" \ --lastname "Admin" \ --email "${SUPERSET_ADMIN_EMAIL}" \ --password "${SUPERSET_ADMIN_PASSWORD}" 2>/dev/null || echo "[Superset Init] Admin já existe." echo "[Superset Init] Inicializando roles e permissões..." superset init echo "[Superset Init] Registrando banco Arcádia Suite..." python - <