Copia de seguridad SQLite con TFDSQLiteBackup

DELPHIHEAVEN · GUÍA PRÁCTICA

Copia de seguridad SQLite con TFDSQLiteBackup

Una copia consistente del fichero de datos, incluso cuando la aplicación mantiene la base abierta.

Los fragmentos son ejemplos didácticos; se adaptan los nombres y rutas al proyecto y se comprueban en Delphi antes de utilizarlos en producción.

Cuándo se utiliza

PC Shop incorpora respaldos de pcshop.db desde el Data Module. En lugar de copiar sin más el archivo abierto, FireDAC proporciona TFDSQLiteBackup, basado en el mecanismo de copia de SQLite. Se utiliza una ruta de destino nueva y un nombre con fecha para conservar distintas versiones.

Configurar el componente

  1. Se añade TFDSQLiteBackup al Data Module y se configura el driver SQLite.
  2. Se determina la ruta de origen de pcshop.db.
  3. Se crea la carpeta backups si no existe y se prepara un archivo de destino diferente.
  4. Se invoca la copia y se registran las excepciones.

Ejemplo en Object Pascal

FDSQLiteBackup1.Database := RutaOrigen;
FDSQLiteBackup1.DestDatabase := RutaDestino;
FDSQLiteBackup1.DestMode := smCreate;
FDSQLiteBackup1.WaitForLocks := True;
FDSQLiteBackup1.BusyTimeout := 10000;
FDSQLiteBackup1.Backup;

Comprobar el respaldo

Se verifica que el nuevo archivo existe y que su tamaño es mayor que cero. Se abre una copia aislada y se ejecuta PRAGMA integrity_check;. La prueba completa incluye una restauración en una base de datos de ensayo. Una copia no se considera fiable solo por existir.

Referencias (APA 7)

Embarcadero Technologies. (s. f.). TFDSQLiteBackup. RAD Studio API Documentation.

Embarcadero Technologies. (s. f.). Using SQLite with FireDAC. RAD Studio Documentation.

SQLite. (s. f.). PRAGMA statements. SQLite Documentation.

Todas las guías Proyecto relacionado