entrypoint.sh now requires RUN_SEED=true to execute the seed script. Without it, only 'flask db upgrade heads' runs on container start. docker-compose.yml (dev) sets RUN_SEED=true and RUN_CSV_IMPORT=true so local development behaviour is unchanged. Production (docker-compose.prod.yml) does not set these variables, so the database is no longer wiped on every deploy.
32 lines
839 B
Bash
32 lines
839 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
echo "==> Aguardando banco de dados ficar disponível..."
|
|
# Flask-Migrate requer o banco para criar tabelas
|
|
until uv run python -c "
|
|
import os, psycopg2
|
|
conn = psycopg2.connect(os.environ['DATABASE_URL'])
|
|
conn.close()
|
|
print('Banco disponível.')
|
|
" 2>/dev/null; do
|
|
echo " Banco ainda não disponível, aguardando 2s..."
|
|
sleep 2
|
|
done
|
|
|
|
echo "==> Rodando migrações..."
|
|
uv run flask db upgrade heads
|
|
|
|
if [ "${RUN_SEED:-false}" = "true" ]; then
|
|
echo "==> Executando seeder (RUN_SEED=true)..."
|
|
uv run python seeds/seed.py
|
|
else
|
|
echo "==> Seeder ignorado em produção (RUN_SEED não definido)."
|
|
fi
|
|
|
|
if [ "${RUN_CSV_IMPORT:-false}" = "true" ]; then
|
|
echo "==> Importando imóveis do CSV (idempotente)..."
|
|
uv run python seeds/import_from_csv.py
|
|
fi
|
|
|
|
echo "==> Iniciando servidor Flask..."
|
|
exec uv run python run.py
|