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! 🙂