Copia de Seguridad de la Base de Datos SQLite

SQLiteSQLiteBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo hacer copias de seguridad y restaurar una base de datos SQLite. Aprenderás a exportar una base de datos a un archivo SQL utilizando el comando .dump, crear una copia de seguridad (backup), y luego restaurar la base de datos desde esa copia de seguridad. Esto es esencial para proteger tus datos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sqlite(("SQLite")) -.-> sqlite/SQLiteGroup(["SQLite"]) sqlite/SQLiteGroup -.-> sqlite/init_db("Create SQLite Database") sqlite/SQLiteGroup -.-> sqlite/make_table("Create New Table") sqlite/SQLiteGroup -.-> sqlite/add_row("Insert Single Row") sqlite/SQLiteGroup -.-> sqlite/add_rows("Insert Multiple Rows") sqlite/SQLiteGroup -.-> sqlite/get_all("Select All Rows") sqlite/SQLiteGroup -.-> sqlite/query_where("Filter With WHERE") sqlite/SQLiteGroup -.-> sqlite/verify_table("Check Table Existence") subgraph Lab Skills sqlite/init_db -.-> lab-552548{{"Copia de Seguridad de la Base de Datos SQLite"}} sqlite/make_table -.-> lab-552548{{"Copia de Seguridad de la Base de Datos SQLite"}} sqlite/add_row -.-> lab-552548{{"Copia de Seguridad de la Base de Datos SQLite"}} sqlite/add_rows -.-> lab-552548{{"Copia de Seguridad de la Base de Datos SQLite"}} sqlite/get_all -.-> lab-552548{{"Copia de Seguridad de la Base de Datos SQLite"}} sqlite/query_where -.-> lab-552548{{"Copia de Seguridad de la Base de Datos SQLite"}} sqlite/verify_table -.-> lab-552548{{"Copia de Seguridad de la Base de Datos SQLite"}} end

Crear una Base de Datos de Ejemplo

En este paso, crearás una base de datos SQLite de ejemplo y la llenarás con algunos datos. Esto te proporcionará una base de datos para practicar la copia de seguridad (backup) y la restauración.

Primero, abre la shell de SQLite. Aquí es donde interactuarás con la base de datos.

sqlite3 mydatabase.db

Este comando inicia la shell de SQLite y crea un nuevo archivo de base de datos llamado mydatabase.db. Si el archivo ya existe, abrirá ese archivo en su lugar.

Ahora, crea una tabla llamada users con columnas para id, name y email:

CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT,
    email TEXT
);

Este comando SQL crea una tabla llamada users. La columna id es un entero y la clave primaria (primary key), lo que significa que identifica de forma única cada fila en la tabla. Las columnas name y email son campos de texto.

A continuación, inserta algunos datos de ejemplo en la tabla users:

INSERT INTO users (name, email) VALUES ('Alice', '[email protected]');
INSERT INTO users (name, email) VALUES ('Bob', '[email protected]');

Estos comandos agregan dos filas a la tabla users. La primera fila tiene el nombre 'Alice' y el correo electrónico '[email protected]'. La segunda fila tiene el nombre 'Bob' y el correo electrónico '[email protected]'.

Para verificar que los datos se han insertado correctamente, ejecuta el siguiente comando:

SELECT * FROM users;

Deberías ver una salida similar a esta:

1|Alice|[email protected]
2|Bob|[email protected]

Esta salida muestra el contenido de la tabla users, confirmando que los datos se han insertado correctamente.

Exportar la Base de Datos a un Archivo SQL

En este paso, exportarás la base de datos mydatabase.db a un archivo SQL llamado mydatabase.sql. Este archivo SQL contendrá los comandos necesarios para recrear la base de datos y sus datos.

Primero, sal de la shell de SQLite:

.exit

Este comando cierra la conexión a la base de datos y te devuelve a la terminal de Linux.

Ahora, utiliza el comando .dump para exportar la base de datos a un archivo SQL:

sqlite3 mydatabase.db .dump > mydatabase.sql

Este comando utiliza la herramienta de línea de comandos sqlite3 para conectarse a la base de datos mydatabase.db. El comando .dump le dice a SQLite que imprima (output) toda la base de datos como una serie de comandos SQL. El símbolo > redirige la salida (output) del comando .dump a un archivo llamado mydatabase.sql.

Para verificar que la exportación fue exitosa, puedes ver el contenido del archivo mydatabase.sql utilizando el comando cat:

cat mydatabase.sql

Deberías ver una salida similar a esta:

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT,
    email TEXT
);
INSERT INTO users VALUES(1,'Alice','[email protected]');
INSERT INTO users VALUES(2,'Bob','[email protected]');
COMMIT;

Esta salida muestra los comandos SQL que crean la tabla users e insertan los datos. Esto confirma que la base de datos se ha exportado correctamente a un archivo SQL.

Crear una Copia de Seguridad (Backup) de la Base de Datos

En este paso, crearás una copia de seguridad (backup) de la base de datos utilizando el mismo comando .dump. Este es esencialmente el mismo proceso que exportar a un archivo SQL, pero guardaremos la copia de seguridad en un archivo diferente.

sqlite3 mydatabase.db .dump > mydatabase_backup.sql

Este comando crea una copia de seguridad (backup) de la base de datos mydatabase.db y la guarda en un archivo llamado mydatabase_backup.sql.

Para verificar que la copia de seguridad (backup) se creó correctamente, puedes ver el contenido del archivo mydatabase_backup.sql utilizando el comando cat:

cat mydatabase_backup.sql

Deberías ver la misma salida (output) que en el paso anterior, confirmando que el archivo de copia de seguridad (backup) contiene los comandos SQL necesarios para recrear la base de datos.

Restaurar la Base de Datos desde la Copia de Seguridad (Backup)

En este paso, restaurarás la base de datos desde el archivo mydatabase_backup.sql. Esto recreará la base de datos y sus datos desde la copia de seguridad (backup).

Primero, simulemos un escenario donde la base de datos original se pierde. Elimina el archivo mydatabase.db:

rm mydatabase.db

Este comando elimina el archivo mydatabase.db del sistema de archivos.

Ahora, restaura la base de datos desde el archivo mydatabase_backup.sql:

sqlite3 mydatabase.db < mydatabase_backup.sql

Este comando utiliza la herramienta de línea de comandos sqlite3 para crear un nuevo archivo de base de datos llamado mydatabase.db. El símbolo < redirige el contenido del archivo mydatabase_backup.sql al comando sqlite3, que ejecuta los comandos SQL en el archivo. Esto recrea la base de datos y sus datos.

Para verificar que la restauración fue exitosa, abre la base de datos en la shell de SQLite:

sqlite3 mydatabase.db

Y consulta la tabla users:

SELECT * FROM users;

Deberías ver los datos que se respaldaron (backed up):

1|Alice|[email protected]
2|Bob|[email protected]

Esto confirma que la base de datos se ha restaurado correctamente desde el archivo de copia de seguridad (backup).

Sal de la shell de SQLite:

.exit

Resumen

En este laboratorio, has aprendido cómo hacer una copia de seguridad (backup) y restaurar una base de datos SQLite. Has utilizado el comando .dump para exportar la base de datos a un archivo SQL, y luego has restaurado la base de datos desde ese archivo. Estas habilidades son esenciales para proteger tus datos y asegurar que puedes recuperarte de la pérdida de datos.