Saltar a contenido

Base de Datos

RaiSE almacena todo el estado personal en una única base de datos SQLite en ~/.rai/raise.db. Esta es la base de datos consolidada — un solo archivo que contiene sesiones, patrones, misiones, worktrees, signals y registros de aprendizaje de todos tus proyectos.

Qué Almacena

Tabla Contenido
sessions Registros de sesiones — hora de inicio, hora de fin, proyecto, resumen, tipo
patterns Aprendizajes extraídos — contenido, keywords de contexto, scope, story de origen
missions Definiciones de misiones — nombre, objetivos, estado, timestamps de ciclo de vida
worktrees Worktrees registrados — ruta, rama, vinculación de misión, estado de archivos de entorno
signals Eventos de trabajo — inicio, completado y bloqueo de epics/stories, con timestamps
learning_records Datos de calibración — duraciones estimadas vs. reales por story

La base de datos es personal — no se commitea a git. Vive en tu directorio home y persiste entre proyectos, worktrees y sesiones.

Migración desde DBs por Proyecto

Antes de v3.1.0 (Epic E8204), RaiSE mantenía un .raise/raise.db separado en cada directorio de proyecto. Esto causaba fragmentación de estado: los patrones capturados en un worktree eran invisibles en otro, y el estado de las misiones podía divergir entre checkouts.

E8204 consolidó todo el estado personal en ~/.rai/raise.db. Ya no se crean bases de datos por proyecto. El comando rai db consolidate migra los datos por proyecto existentes al almacén global.

Si tienes bases de datos por proyecto antiguas, ejecuta:

rai db consolidate --project /path/to/project

Comandos Clave

Comando Qué hace
rai db status Mostrar ubicación de la base de datos, tamaño y conteo de filas por tabla
rai db check Validar la integridad del esquema y detectar corrupción
rai db consolidate Migrar una DB por proyecto al almacén global
rai db export Exportar la base de datos completa a un backup JSONL portable

La Regla de Oro: Nunca Toques los Archivos .db Directamente

No abras, edites, copies ni muevas .raise/*.db o ~/.rai/raise.db con nada que no sea el CLI rai.

Los archivos SQLite pueden corromperse silenciosamente por escritores concurrentes. Copiar una base de datos en vivo puede producir una instantánea inconsistente. Editar registros directamente evita la validación y puede dejar claves foráneas rotas.

El CLI es la única interfaz segura. Si necesitas inspeccionar datos para depurar, usa rai db export para obtener una instantánea JSONL, o rai db status para conteos.

Backup y Recuperación

La base de datos no está bajo control de versiones. Respáldala como parte de la estrategia de backup de tu máquina. Para recuperación a un punto en el tiempo:

rai db export --output ~/rai-backup-$(date +%Y%m%d).jsonl

Si la base de datos se corrompe:

rai db check       # diagnosticar
rai db rebuild     # reconstruir desde los archivos JSONL de signals/sesiones

El comando rebuild usa los logs de eventos JSONL archivados (almacenados en .raise/sync/) para reconstruir el estado de la base de datos. Algunos datos de aprendizaje pueden perderse si los archivos están incompletos.

Próximos Pasos

  • Referencia CLI: db — todos los flags y opciones
  • Memoria — cómo los patrones y las sesiones se relacionan con los registros de la base de datos
  • Worktrees — registros de worktrees almacenados en la DB