Guía de Migración
Esta guía explica cómo actualizar entre versiones de duplistatus. Las migraciones son automáticas: el esquema de la base de datos se actualiza a sí mismo cuando inicia una nueva versión.
Los pasos manuales solo son requeridos si ha personalizado Plantillas de notificación (la versión 0.8.x cambió variables de plantilla) o Integraciones de API externas que necesitan actualización (la versión 0.7.x cambió nombres de campos de API, la versión 0.9.x requiere autenticación).
Resumen
duplistatus migra automáticamente el esquema de su base de datos al actualizar. El sistema:
- Crea un backup de su base de datos antes de realizar cambios
- Actualiza el esquema de la base de datos a la versión más reciente
- Preserva todos los datos existentes (servidores, backups, configuración)
- Verifica que la migración se completó exitosamente
Copia de seguridad de su base de datos antes de la migración
Antes de actualizar a una nueva versión, se recomienda crear un backup de su base de datos. Esto garantiza que pueda restaurar sus datos si algo sale mal durante el proceso de migración.
Si está ejecutando la Versión 1.2.1 o posterior
Utilice la función de backup de base de datos integrada:
- Navegue a Configuración → Mantenimiento de base de datos en la interfaz web
- En la sección Backup de base de datos, seleccione un formato de backup:
- Archivo de base de datos (.db): Formato binario - backup más rápido, preserva exactamente toda la estructura de la base de datos
- Volcado SQL (.sql): Formato de texto - sentencias SQL legibles por humanos
- Haga clic en Descargar backup
- El archivo de backup se descargará en su computadora con un nombre de archivo con marca de tiempo
Para más detalles, consulte la documentación de Mantenimiento de base de datos.
Si está ejecutando una versión anterior a 1.2.1
Backup
Debe hacer una copia de seguridad manual de la base de datos antes de continuar. El archivo de base de datos se encuentra en /app/data/backups.db dentro del contenedor.
Para Usuarios de Linux
Si está en Linux, no se preocupe por ejecutar contenedores auxiliares. Puede utilizar el comando nativo cp para extraer la base de datos directamente del contenedor en ejecución a su host.
Uso de Docker o Podman:
# Replace 'duplistatus' with your actual container name if different
docker cp duplistatus:/app/data/backups.db ./duplistatus-backup-$(date +%Y%m%d).db
(Si utiliza Podman, simplemente reemplace docker con podman en el comando anterior.)
Para Usuarios de Windows
Si está ejecutando Docker Desktop en Windows, tiene dos formas simples de manejar esto sin utilizar la línea de comandos:
Opción A: Usar Docker Desktop (La más fácil)
- Abra el Panel de control de Docker Desktop.
- Vaya a la pestaña Contenedores y haga clic en su contenedor duplistatus.
- Haga clic en la pestaña Archivos.
- Navegue a
/app/data/. - Haga clic derecho en
backups.dby seleccione Guardar como... para descargarlo a sus carpetas de Windows.
Opción B: Usar PowerShell
Si prefiere la terminal, puede usar PowerShell para copiar el archivo a su Escritorio:
docker cp duplistatus:/app/data/backups.db $HOME\Desktop\duplistatus-backup.db
Si Utiliza Bind Mounts
Si originalmente configuró su contenedor utilizando un bind mount (por ejemplo, asignó una carpeta local como /opt/duplistatus al contenedor), no necesita comandos de Docker en absoluto. Solo copie el archivo usando su gestor de archivos:
- Linux:
cp /path/to/your/folder/backups.db ~/backups.db - Windows: Simplemente copie el archivo en el Explorador de archivos desde la carpeta que designó durante la configuración.
Restaurar Sus Datos
Si necesita restaurar su base de datos desde un backup anterior, siga los pasos a continuación según su sistema operativo.
Detenga el contenedor antes de restaurar la base de datos para evitar corrupción de archivos.
Para Usuarios de Linux
La forma más fácil de restaurar es "enviar" el archivo de backup de vuelta a la ruta de almacenamiento interno del contenedor.
Uso de Docker o Podman:
# stop the container
docker stop duplistatus
# Replace 'duplistatus-backup.db' with your actual backup filename
docker cp ./duplistatus-backup.db duplistatus:/app/data/backups.db
# Restart the container
docker start duplistatus
Para Usuarios de Windows
Si está utilizando Docker Desktop, puede realizar la restauración a través de la GUI o PowerShell.
Opción A: Usar Docker Desktop (GUI)
- Asegúrese de que el contenedor duplistatus esté Activo (Docker Desktop requiere que el contenedor esté activo para subir archivos a través de la GUI).
- Vaya a la pestaña Archivos en la Configuración de su contenedor.
- Navegue a
/app/data/. - Haga clic derecho en el archivo backups.db existente y seleccione Eliminar.
- Haga clic en el botón Importar (o haga clic derecho en el área de la carpeta) y seleccione su archivo de backup desde su computadora.
Cambie el nombre del archivo importado a exactamente backups.db si tiene una marca de tiempo en el nombre.
Reinicia el contenedor.
Opción B: Usar PowerShell
# Copy the file from your Desktop back into the container
docker cp $HOME\Desktop\duplistatus-backup.db duplistatus:/app/data/backups.db
# Restart the container
docker start duplistatus
Si Usa Bind Mounts
Si está utilizando una carpeta local asignada al contenedor, no necesita ningún comando especial.
- Detener el contenedor.
- Copiar manualmente su archivo de backup en su carpeta asignada (por ejemplo,
/opt/duplistatusoC:\duplistatus_data). - Asegurarse de que el archivo se denomina exactamente
backups.db. - Iniciar el contenedor.
docker logs <container-name>
Si restaura la base de datos manualmente, puede encontrar errores de permisos.
Verifique los logs del contenedor y ajuste los permisos si es necesario. Consulte la sección Solución de problemas a continuación para obtener más información.
Proceso de migración automática
Cuándo inicia una nueva versión, las migraciones se ejecutan automáticamente:
- Creación de backup: Se crea un backup con marca de tiempo en su directorio de datos
- Actualización de esquema: Las tablas y campos de la base de datos se actualizan según sea necesario
- Migración de datos: Todos los datos existentes se preservan y se migran
- Verificación: El éxito de la migración se registra
Monitoreo de migración
Verifique los logs de Docker para monitorear el progreso de la migración:
Busque mensajes como:
"Found X pending migrations""Running consolidated migration X.0...""Migration X.0 completed successfully""Database backup created: /path/to/backups-copy-YYYY-MM-DDTHH-MM-SS.db""All migrations completed successfully"
Notas de migración específicas de versión
Actualización a versión 0.9.x o posterior (esquema v4.0)
La autenticación ahora es requerida. Todos los usuarios deben iniciar sesión después de actualizar.
Qué Cambia Automáticamente
- El esquema de base de datos se migra de v3.1 a v4.0
- Nuevas tablas creadas:
users,sessions,audit_log - Cuenta de admin por defecto creada automáticamente
- Todas las sesiones existentes invalidadas
Lo que Debe Hacer
- Iniciar sesión con las credenciales de admin por defecto:
- Nombre de usuario:
admin - Contraseña:
Duplistatus09
- Nombre de usuario:
- Cambiar la contraseña cuando se solicite (requerido en el primer inicio de sesión)
- Crear cuentas de usuario para otros usuarios (Configuración → Usuarios)
- Actualizar integraciones de API externas para incluir autenticación (ver Cambios de API incompatibles hacia atrás)
- Configurar la retención del log de auditoría si es necesario (Configuración → Log de Auditoría)
Si Estás Bloqueado
Utiliza la herramienta de recuperación de admin:
docker exec -it duplistatus /app/admin-recovery admin NewPassword123
Consulte la Guía de Recuperación de Admin para obtener más detalles.
Actualización a la Versión 0.8.x
Qué Cambia Automáticamente
- Esquema de base de datos actualizado a v3.1
- Clave maestra generada para cifrado (almacenada en
.duplistatus.key) - Sesiones invalidadas (nuevas sesiones protegidas contra CSRF creadas)
- Contraseñas cifradas usando el nuevo sistema
Lo que Debe Hacer
- Actualizar plantillas de notificación si las personalizó:
- Reemplace
{backup_interval_value}y{backup_interval_type}con{backup_interval} - Las plantillas por defecto se actualizan automáticamente
- Reemplace
Notas de Seguridad
- Asegúrese de que el archivo
.duplistatus.keyesté respaldado (tiene permisos 0400) - Las sesiones expiran después de 24 horas
Actualización a la Versión 0.7.x
Qué Cambia Automáticamente
- tabla
machinesrenombrada aservers - campos
machine_idrenombrados aserver_id - Nuevos campos añadidos:
alias,notes,created_at,updated_at
Lo que Debe Hacer
- Actualizar integraciones de API externas:
- Cambiar
totalMachines→totalServersen/api/summary - Cambiar
machine→serveren objetos de respuesta de API - Cambiar
backup_types_count→backup_jobs_counten/api/lastbackups/{serverId} - Actualizar rutas de extremos de
/api/machines/...a/api/servers/...
- Cambiar
- Actualizar Plantillas de notificación:
- Reemplazar
{machine_name}con{server_name}
- Reemplazar
Ver Cambios de API incompatibles hacia atrás para pasos detallados de migración de API.
Lista de Verificación Posterior a la Migración
Después de actualizar, verificar:
- Todos los servidores aparecen correctamente en el panel de control
- El historial de backups está completo y es accesible
- Las notificaciones funcionan (probar NTFY/correo electrónico)
- Las integraciones de API externas funcionan (si aplica)
- La configuración es accesible y correcta
- El monitoreo de backup funciona correctamente
- Sesión iniciada correctamente (0.9.x+)
- Contraseña de admin por defecto cambiada (0.9.x+)
- Cuentas de usuario creadas para otros usuarios (0.9.x+)
- Integraciones de API externas actualizadas con autenticación (0.9.x+)
Solución de problemas
La migración falla
- Verificar espacio en disco (el backup requiere espacio)
- Verificar permisos de escritura en el directorio de datos
- Revisar los logs del contenedor para errores específicos
- Restaurar desde backup si es necesario (consulte Rollback a continuación)
Datos Faltantes Después de la Migración
- Verificar que el backup fue creado (verificar el directorio de datos)
- Revisar los logs del contenedor para mensajes de creación de backup
- Verificar la integridad del archivo de base de datos
Problemas de Autenticación (0.9.x+)
- Verificar que la cuenta admin por defecto existe (verificar logs)
- Intentar credenciales por defecto:
admin/Duplistatus09 - Usar herramienta de recuperación admin si está bloqueado
- Verificar que la tabla
usersexiste en la base de datos
Errores de API
- Revisar Cambios de API incompatibles hacia atrás para actualizaciones de endpoints
- Actualizar integraciones externas con nuevos nombres de campos
- Añadir autenticación a las solicitudes de API (0.9.x+)
- Probar endpoints de API después de la migración
Problemas de Clave Maestra (0.8.x+)
- Asegúrese de que el archivo
.duplistatus.keysea accesible - Verificar que los permisos del archivo sean 0400
- Verificar los logs del contenedor para errores de generación de claves
Configuración de DNS de Podman
Si está utilizando Podman y experimenta problemas de conectividad de red después de actualizar, es posible que deba configurar los parámetros de DNS para su contenedor. Consulte la sección de configuración de DNS en la guía de instalación para obtener más detalles.
Procedimiento de Reversión
Si necesita revertir a una versión anterior:
- Detener el contenedor:
docker stop <container-name>(opodman stop <container-name>) - Encontrar su backup:
- Si creó un backup usando la interfaz web (versión 1.2.1+), use ese archivo de backup descargado
- Si creó un backup manual de volumen, extráigalo primero
- Los backups de migración automática se encuentran en el directorio de datos (archivos
.dbcon marca de tiempo)
- Restaurar la base de datos:
- Para backups de interfaz web (versión 1.2.1+): Use la función de restauración en
Configuración → Mantenimiento de base de datos(consulte Mantenimiento de base de datos) - Para backups manuales: Reemplace
backups.dben su directorio de datos/volumen con el archivo de backup
- Para backups de interfaz web (versión 1.2.1+): Use la función de restauración en
- Usar versión de imagen anterior: Descargue y ejecute la imagen de contenedor anterior
- Iniciar el contenedor: Inicie con la versión anterior
La reversión puede causar pérdida de datos si el esquema más nuevo es incompatible con la versión anterior. Asegúrese siempre de tener un backup reciente antes de intentar la reversión.
Solución de problemas de su restauración / reversión
Si la aplicación no se inicia o sus datos no aparecen después de una restauración o reversión, verifique los siguientes problemas comunes:
1. Permisos de Archivo de Base de Datos (Linux/Podman)
Si restauró el archivo como usuario root, es posible que la aplicación dentro del contenedor no tenga permiso para leerlo o escribir en él.
- El síntoma: Los logs muestran "Permission Denied" o "Read-only database."
- La solución: Restablezca los permisos del archivo dentro del contenedor para garantizar que sea accesible.
# Set ownership (usually UID 1000 or the app user)
docker exec -u 0 duplistatus chown 1000:1000 /app/data/backups.db
# Set read/write permissions
docker exec -u 0 duplistatus chmod 664 /app/data/backups.db
2. Nombre de archivo incorrecto
La aplicación busca específicamente un archivo denominado backups.db.
- El síntoma: La aplicación se inicia pero se ve "vacía" (como una instalación nueva).
- La solución: Verifique el directorio
/app/data/. Si su archivo se llamaduplistatus-backup-2024.dbo tiene una extensión.sqlite, la aplicación lo ignorará. Utilice el comandomvo la interfaz gráfica de Docker Desktop para renombrarlo exactamente abackups.db.
3. Contenedor No Reiniciado
En algunos sistemas, el uso de docker cp mientras el contenedor se está ejecutando puede no "actualizar" inmediatamente la conexión de la aplicación a la base de datos.
- La solución: Siempre realice un reinicio completo después de una restauración:
docker restart duplistatus
4. Desajuste de Versión de Base de Datos
Si está restaurando un backup de una versión mucho más nueva de duplistatus en una versión anterior de la aplicación, el esquema de la base de datos podría ser incompatible.
- La solución: Asegúrese siempre de que está ejecutando la misma versión (o una más reciente) de la imagen duplistatus que la que creó el backup. Verifique su versión con:
docker inspect duplistatus --format '{{.Config.Image}}'
Versiones del Esquema de Base de Datos
| Versión de Aplicación | Versión de Schema | Cambios Clave |
|---|---|---|
| 0.6.x y anteriores | v1.0 | Schema inicial |
| 0.7.x | v2.0, v3.0 | Configuraciones añadidas, servidores renombrados (máquinas → servidores) |
| 0.8.x | v3.1 | Campos de backup mejorados, soporte de Cifrado |
| 0.9.x, 1.0.x, 1.1.x, 1.2.x, 1.3.x | v4.0 | Control de acceso de Usuario, autenticación, registro de auditoría |
Obtener Ayuda
- Documentación: Guía de usuario
- Referencia de API: Documentación de API
- Cambios de API: Cambios de API incompatibles hacia atrás
- Notas de la versión: Verificar las notas de la versión específica para cambios detallados
- Comunidad: GitHub Discussions
- Problemas: GitHub Issues