Copia de seguridad de la base de datos en Laravel

copia de seguridad

Cómo crear una copia de seguridad de la base de datos en Laravel

En este artículo, discutiremos “Cómo crear una copia de seguridad de la base de datos en Laravel”. En esto, no vamos a utilizar ningún paquete adicional. Crearemos nuestro comando artesanal para la copia de seguridad de la base de datos y programaremos lo mismo para el día o el tiempo que deseemos.

La copia de seguridad de la base de datos es un requisito básico de cada proyecto en el que utilizamos una base de datos. Por eso mantenemos los diferentes servicios para realizar copias de seguridad de la base de datos. Algunos de los proveedores de alojamiento nos proporcionan copias de seguridad diarias de bases de datos y archivos.

Tabla de contenido

  • Crear proyecto Laravel
  • Establecer conexión con DB
  • Crear Comando Artisan
  • Ejecutar Comando Artisan
  • Programe el comando de copia de seguridad de la base de datos como CRON
  • Configurar CRON en el servidor
  • Conclusión

Crear proyecto Laravel

Use el siguiente comando composer para instalar la copia nueva de Laravel.

composer create-project laravel/laravel laravel-project --prefer-dist

Establecer conexión con DB

Abra el archivo “.env“, ubicado en la raíz del proyecto Laravel, y actualice las credenciales de base de datos requeridas.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel8
DB_USERNAME=root
DB_PASSWORD=root

Crear Comando Artisan

Ejecute el siguiente comando Artisan en la terminal.

php artisan make:command DatabaseBackup

Puede obtener más detalles sobre el comando personalizado Artisan aquí.

Abra el archivo de comando “DatabaseBackup.php” ubicado en “app/Console/Commands“. Actualice el archivo según el siguiente fragmento de código.

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Carbon\Carbon;
use File;

class DatabaseBackup extends Command

/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'database:backup';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Create copy of mysql dump for existing database.';

/**
* Create a new command instance.
*
* @return void
*/
public function __construct()

parent::__construct();


/**
* Execute the console command.
*
* @return int
*/
public function handle()

$filename = "backup-" . Carbon::now()->format('Y-m-d') . ".sql";

// Create backup folder and set permission if not exist.
$storageAt = storage_path() . "/app/backup/";
if(!File::exists($storageAt)) 
File::makeDirectory($storageAt, 0755, true, true);


$command = "".env('DB_DUMP_PATH', 'mysqldump')." --user=" . env('DB_USERNAME') ." --password=" . env('DB_PASSWORD') . " --host=" . env('DB_HOST') . " " . env('DB_DATABASE') . "

Como ha visto, la función “handle” contiene el comando de copia de seguridad. Primero, creamos un nombre de archivo de respaldo y luego creamos una carpeta de respaldo en la ruta de almacenamiento de Laravel si no existe.

Ejecutar Comando Artisan

Utilice el siguiente comando Artisan en el terminal para probar la copia de seguridad de la base de datos.

php artisan database:backup

Después de ejecutar el comando mencionado anteriormente, nuestro archivo de copia de seguridad de base de datos se crea en “storage/app/backup“.


Programe el comando de copia de seguridad de la base de datos como CRON

Abra el “Kernel.php” ubicado en “app\Console“. Actualice la función de programación de la siguiente manera.

$schedule->command('database:backup')->daily();

Configurar CRON en el servidor

Por fin, estamos listos para configurar el CRON en el servidor. Use el siguiente comando en la terminal del servidor.

crontab -e

Esto abrirá el crontab, debe agregar el comando CRON aquí. Por ejemplo:

* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1

OR

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Puede obtener más detalles (en inglés) sobre la programación de tareas de Laravel aquí.


Conclusión

En este artículo, estamos discutiendo “Cómo crear copias de seguridad de la base de datos en Laravel“. Espero que le guste este artículo y obtenga una exposición básica sobre la copia de seguridad de la base de datos de Laravel, el comando artesanal personalizado y la programación de tareas. Discutiremos más sobre Laravel, etc. No dude en agregar comentarios si tiene alguna consulta o sugerencia.

¡Siga aprendiendo y manténgase a salvo! 🙂

Recent Post