Rullst AcademyRullst Academy/Lección
Aplicaciones con Rullst I · Lección 07 / 14

Persistencia: guardar con reglas

Una misión debe sobrevivir al fin del proceso.

Rutas de aprendizaje18 min

Vamos a descubrir juntos

  1. 1

    Store abre una conexión SQLite y ejecuta schema.sql. La tabla STRICT exige tipos compatibles; NOT NULL y CHECK refuerzan reglas. INTEGER PRIMARY KEY identifica cada misión y done acepta solo 0 o 1. Un título no es identidad: dos misiones pueden compartir nombre.

  2. 2

    La aplicación usa una conexión para mantener pequeño el laboratorio. Parámetros y restricciones complementan la validación Rust. No toda regla se duplica en CHECK: por ejemplo, Rust rechaza caracteres de control. Inspecciona las reglas en vez de asumir equivalencia.

  3. 3

    Crea tres misiones, detén con Ctrl+C y ejecuta en la misma carpeta. La lista debe volver. Las pruebas usan :memory: para casos aislados; cerrar esa conexión pierde los datos. Archivo persistente y memoria de prueba tienen objetivos diferentes.

  4. 4

    PRAGMA user_version registra esquema 1. El kit rechaza versiones superiores, pero no es una plataforma completa de migración. CREATE TABLE IF NOT EXISTS solo crea lo que falta: cambiar schema.sql no transforma tablas antiguas. Planifica migración y respaldo antes de evolucionar datos.

Tu mesa de aplicaciones

El kit incluye la aplicación completa para investigar y modificar. El fragmento explica esta etapa; el editor contiene el archivo indicado. Rullst Academy no compila ni ejecuta este servidor en el navegador.

Archivo para estudiar y modificar

schema.sql

CREATE TABLE missions (
  id INTEGER PRIMARY KEY,
  title TEXT NOT NULL CHECK(length(trim(title)) BETWEEN 1 AND 80),
  priority INTEGER NOT NULL CHECK(priority BETWEEN 1 AND 3),
  done INTEGER NOT NULL DEFAULT 0 CHECK(done IN (0,1))
) STRICT;

Extrae el kit en una carpeta nueva y abre el terminal junto a Cargo.toml. Usa Rust 1.96+; la primera compilación puede descargar dependencias y tardar. Abre http://127.0.0.1:3010. Detén con Ctrl+C y ejecuta de nuevo tras editar.

cargo test --locked
cargo run --locked
Mis archivos y GitHub

Descarga tu borrador y sustituye el archivo indicado en tu copia extraída. El editor guarda un archivo en este navegador; tu cuenta guarda evaluaciones y XP. El ZIP excluye tus cambios. GitHub envía solo el archivo confirmado; usa Git manual para la aplicación entera, sin bases, respaldos ni secretos.

Enlaces oficiales y siguiente paso

✦
TU MISIÓN

Explicar esquema, archivo y restricciones; verificar datos tras reiniciar.

Ahora te toca

Taller de descubrimientos

Decide antes de ejecutar

Explicar esquema, archivo y restricciones; verificar datos tras reiniciar.
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

¿Qué distingue dos misiones llamadas Orbit?

Necesito una pista

El orden puede cambiar; el id dirige una modificación al registro correcto.

Cargando tu camino…

Llévatelo contigo

Compara una prueba en memoria con una ejecución en archivo. Registra la ubicación y qué reglas pertenecen a Rust y SQL. Prueba una restricción inválida solo en una base nueva de prueba.

A tu ritmo

Mis archivos y GitHub

Cada lección puede convertirse en un registro propio: código, notas o un plan de práctica. Guardar un archivo en GitHub es opcional y no cambia tus XP.

Manual del alumno

El editor y las descargas se abren cuando esta lección esté disponible para tu cuenta. Revisa el acceso indicado abajo o vuelve al mapa de la ruta.

Comprobando tu acceso a esta lección…

Rullstpetbot

La IA puede equivocarse. Consulta el material de la lección.