Migraciones de esquema SQLite sin perder datos

DELPHIHEAVEN · GUÍA PRÁCTICA

Migraciones de esquema SQLite sin perder datos

Se incorpora una nueva columna sin eliminar ventas históricas.

Los ejemplos muestran el patrón técnico; se adaptan al esquema real, se revisan y se prueban en una base de ensayo.

El problema real

CREATE TABLE IF NOT EXISTS no modifica una tabla que ya existe. PC Shop utiliza migraciones explícitas para actualizar instalaciones antiguas sin perder registros anteriores.

Inspeccionar el esquema

PRAGMA table_info(VENTAS);

Ejemplo de migración

ALTER TABLE VENTAS
ADD COLUMN Trazable INTEGER NOT NULL DEFAULT 0;

Procedimiento

  1. Se comprueba que existe una copia de seguridad recuperable.
  2. Se consulta si la columna ya está presente; no se ejecuta dos veces el mismo ALTER TABLE.
  3. Se aplica el cambio a una base de prueba.
  4. Se consulta PRAGMA integrity_check y PRAGMA foreign_key_check.
  5. Se comprueba que las ventas antiguas siguen siendo accesibles.

Compatibilidad del modelo

La marca Trazable=0 distingue inicialmente registros anteriores a la nueva regla. Antes de añadir índices únicos sobre movimientos se revisa si el esquema admite varias líneas y movimientos por venta.

Referencias (APA 7)

SQLite. (s. f.). PRAGMA statements. https://www.sqlite.org/pragma.html.

101aero. (s. f.). PC Shop [Repositorio de código]. https://github.com/101aero/PcshopPV.

Índice de guías PC Shop