From 6e8a3261bb8a6635d997631a9d5a3d1a6859e78d Mon Sep 17 00:00:00 2001 From: Jonas Pacheco Date: Thu, 19 Mar 2026 14:25:55 -0300 Subject: [PATCH] fix(superset): corrigir health check do init.sh e criar banco superset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit init.sh tentava conectar ao banco 'superset' (inexistente) para o health check, causando loop infinito. Agora usa banco 'postgres' para verificar se o PostgreSQL está disponível, depois cria o banco 'superset' antes de rodar as migrações. Co-Authored-By: Claude Sonnet 4.6 --- docker/superset/init.sh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/docker/superset/init.sh b/docker/superset/init.sh index b0938b0..965eabe 100755 --- a/docker/superset/init.sh +++ b/docker/superset/init.sh @@ -10,10 +10,12 @@ ARCADIA_DB_URL="${ARCADIA_DATABASE_URL:-postgresql://arcadia:arcadia123@db:5432/ echo "[Superset Init] Aguardando PostgreSQL..." until python -c " -import psycopg2, os, sys +import psycopg2, os, sys, re try: - url = os.environ.get('DATABASE_URL', 'postgresql://arcadia:arcadia123@db:5432/arcadia_superset') - psycopg2.connect(url) + # 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 @@ -21,6 +23,23 @@ except Exception: 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