fix(backup): corregir descarga y añadir restauración de BD

- 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
This commit is contained in:
jlimolina 2026-08-10 15:25:41 +02:00
parent ecd7a3cdf8
commit a285021e6c
22 changed files with 7624 additions and 450 deletions

View file

@ -132,7 +132,10 @@ func writeLoop(wsWorker *WSWorker) {
for {
select {
case <-ticker.C:
if err := wsWorker.conn.WriteMessage(websocket.PingMessage, nil); err != nil {
wsWorker.mu.Lock()
err := wsWorker.conn.WriteMessage(websocket.PingMessage, nil)
wsWorker.mu.Unlock()
if err != nil {
return
}
}
@ -163,7 +166,9 @@ func heartbeatLoop(wsWorker *WSWorker) {
func sendWS(wsWorker *WSWorker, msg models.WSServerMessage) {
data, _ := json.Marshal(msg)
wsWorker.mu.Lock()
wsWorker.conn.WriteMessage(websocket.TextMessage, data)
wsWorker.mu.Unlock()
}
func cleanupWorker(wsWorker *WSWorker, apiKey string) {