Files
ToldoConjunto/openspec/changes/harden-database-bootstrap-reset/design.md

1.2 KiB

Design

Context

Dexie abre la base al ejecutar la primera consulta. El esquema tiene migraciones 1, 2 y 3, pero main.ts monta Vue inmediatamente y no distingue una base en migración de un error de operación.

Goals / Non-Goals

Goals: hacer explícita la apertura, evitar operaciones contra una base no lista, ofrecer recuperación manual y preservar datos durante actualizaciones compatibles.

Non-Goals: borrar o reconstruir automáticamente una base con error, sincronizar datos con servidor o reemplazar las migraciones Dexie.

Decisions

  • db.open() se ejecutará antes de montar la aplicación.
  • Un fallo de apertura montará una vista mínima de recuperación con mensaje técnico resumido y botón de reset destructivo.
  • El reset se expondrá también desde Exportar/Importar, exigiendo confirmación y recomendando exportar antes.
  • Las migraciones se mantendrán como versiones Dexie; cada cambio futuro de esquema deberá agregar una versión y upgrade explícito.

Risks / Trade-offs

  • El usuario puede resetear por error -> confirmación explícita y texto de pérdida de datos.
  • Una base realmente corrupta puede no permitir exportación -> la pantalla explicará que el reset es último recurso.