- Backend usa DATABASE_URL (resolvePgConnInfo) en vez de DB_* que no existían en el contenedor API, arreglando el fallo de pg_dump - Dockerfile backend: alpine 3.23 para pg_dump 18.4 (compatible con PostgreSQL 18 del servidor) - BackupDatabase ya no usa docker exec (no disponible en la imagen) - Nuevo endpoint POST /api/admin/restore para restaurar .sql o .zip vía psql - UI de Configuración: sección Restaurar Base de Datos - Regenerado go.sum para el build
38 lines
1.3 KiB
Bash
Executable file
38 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
# Directorio de datos de PostgreSQL
|
|
PGDATA_DIR="/var/lib/postgresql/data/18/main"
|
|
|
|
echo "RSS2: Checking database presence..."
|
|
|
|
# REGLA: nunca se borra ni se modifica el directorio de datos automáticamente.
|
|
# Solo se informa del estado y se deja que el entrypoint oficial de PostgreSQL
|
|
# inicialice (si no existe) o arranque con los datos existentes.
|
|
if [ -f "$PGDATA_DIR/PG_VERSION" ]; then
|
|
echo "RSS2: Existing database found at $PGDATA_DIR - starting normally"
|
|
else
|
|
echo "RSS2: No database found at $PGDATA_DIR - docker-entrypoint will initialize it"
|
|
fi
|
|
|
|
# Ejecutar el entrypoint original con los parámetros de PostgreSQL.
|
|
# Si la base de datos estuviera corrupta, PostgreSQL fallará al arrancar y
|
|
# registrará el error en los logs; NO se elimina ningún dato de forma automática.
|
|
exec docker-entrypoint.sh \
|
|
postgres \
|
|
-c max_connections=200 \
|
|
-c shared_buffers=4GB \
|
|
-c effective_cache_size=12GB \
|
|
-c work_mem=16MB \
|
|
-c maintenance_work_mem=512MB \
|
|
-c autovacuum_max_workers=3 \
|
|
-c autovacuum_vacuum_scale_factor=0.02 \
|
|
-c autovacuum_vacuum_cost_limit=1000 \
|
|
-c max_worker_processes=8 \
|
|
-c max_parallel_workers=6 \
|
|
-c max_parallel_workers_per_gather=2 \
|
|
-c wal_level=replica \
|
|
-c max_wal_senders=5 \
|
|
-c wal_keep_size=1GB \
|
|
-c hot_standby=on \
|
|
"$@"
|