fix: preservar datos y recuperar base local
This commit is contained in:
23
openspec/changes/harden-database-bootstrap-reset/design.md
Normal file
23
openspec/changes/harden-database-bootstrap-reset/design.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user