Simplificar configuración de PostgreSQL con cadena de conexión única
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 16s
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 16s
Eliminados hacks de autenticación md5 y configuración manual de pg_hba.conf. Ahora usa NUXT_POSTGRES_URL como secret de Gitea para conexión directa.
This commit is contained in:
@@ -17,6 +17,8 @@ jobs:
|
||||
POSTGRES_USER: ${{ vars.POSTGRES_USER || 'seguidor' }}
|
||||
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD || 'seguidor_password' }}
|
||||
POSTGRES_DB: ${{ vars.POSTGRES_DB || 'seguidor_lotes' }}
|
||||
POSTGRES_PORT: ${{ vars.POSTGRES_PORT || '5432' }}
|
||||
NUXT_POSTGRES_URL: ${{ secrets.NUXT_POSTGRES_URL || vars.NUXT_POSTGRES_URL || '' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
@@ -44,37 +46,17 @@ jobs:
|
||||
|
||||
docker compose pull
|
||||
docker compose --project-name $APP_NAME down
|
||||
|
||||
# Levantar solo Postgres para sincronizar auth antes de iniciar la app
|
||||
docker compose --project-name $APP_NAME up -d postgres
|
||||
|
||||
echo "⏳ Esperando a PostgreSQL..."
|
||||
for i in $(seq 1 20); do
|
||||
if docker exec $APP_NAME-postgres pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB"; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Asegurar autenticación md5 y que la contraseña coincide con la env (cura volúmenes viejos)
|
||||
echo "🔐 Sincronizando autenticación PostgreSQL (md5 + password)..."
|
||||
ESCAPED_PASSWORD=${POSTGRES_PASSWORD//\'/\'\"\'\"\'}
|
||||
docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" $APP_NAME-postgres psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "ALTER SYSTEM SET password_encryption = 'md5';"
|
||||
docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" $APP_NAME-postgres psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "ALTER ROLE \"$POSTGRES_USER\" WITH PASSWORD '${ESCAPED_PASSWORD}';"
|
||||
docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" $APP_NAME-postgres psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT pg_reload_conf();"
|
||||
|
||||
# Ahora sí levantar la app
|
||||
docker compose --project-name $APP_NAME up -d --remove-orphans --wait
|
||||
|
||||
# Inicializar base de datos si es necesario
|
||||
echo "🗄️ Inicializando base de datos..."
|
||||
# Verificar si las tablas existen
|
||||
TABLE_EXISTS=$(docker exec $APP_NAME-postgres psql -U $POSTGRES_USER -d $POSTGRES_DB -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_name = 'lotes');")
|
||||
TABLE_EXISTS=$(docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" $APP_NAME-postgres psql -U $POSTGRES_USER -d $POSTGRES_DB -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_name = 'lotes');")
|
||||
|
||||
if [ "$TABLE_EXISTS" = "f" ]; then
|
||||
echo "📝 Ejecutando scripts de inicialización..."
|
||||
docker exec -i $APP_NAME-postgres psql -U $POSTGRES_USER -d $POSTGRES_DB < nuxt4/server/database/01_schema.sql
|
||||
docker exec -i $APP_NAME-postgres psql -U $POSTGRES_USER -d $POSTGRES_DB < nuxt4/server/database/02_seed.sql
|
||||
docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" -i $APP_NAME-postgres psql -U $POSTGRES_USER -d $POSTGRES_DB < nuxt4/server/database/01_schema.sql
|
||||
docker exec -e PGPASSWORD="$POSTGRES_PASSWORD" -i $APP_NAME-postgres psql -U $POSTGRES_USER -d $POSTGRES_DB < nuxt4/server/database/02_seed.sql
|
||||
echo "✅ Base de datos inicializada"
|
||||
else
|
||||
echo "ℹ️ Base de datos ya inicializada"
|
||||
|
||||
Reference in New Issue
Block a user