Table des matières
Contexte
Commande d'exportation
Échauffement de l'interface de la console Artiasn
et regardez la fonction
Utilisez Forge pour configurer le planificateur
Résumé
Maison cadre php Laravel Comment utiliser Larave pour créer une tâche de planification de sauvegarde de base de données MySQL

Comment utiliser Larave pour créer une tâche de planification de sauvegarde de base de données MySQL

Aug 14, 2018 am 10:23 AM
backup laravel mysql php

Le contenu de cet article explique comment utiliser Larave pour développer une tâche de plan de sauvegarde de base de données MySQL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Vous pouvez exporter l'intégralité de la base de données en exécutant une commande sur une seule ligne dans le terminal. Cette solution est non seulement simple et directe mais aussi efficace. Mais il existe des solutions plus automatisées. Découvrons ce que c'est !

Comment utiliser Larave pour créer une tâche de planification de sauvegarde de base de données MySQL

Contexte

Il y a quelques jours, je me suis connecté à la mauvaise base de données et j'ai tué 18 000 Données en ligne enregistrement. Le pire, c'est que nous n'avons pas de sauvegarde de cette base de données. J'ai alors décidé d'écrire un script qui automatiserait l'exportation de la base de données et l'enregistrerait dans un fichier SQL.

De plus, si vous avez besoin d'un système de sauvegarde de données puissant, vous pouvez consulter cette extension. De cette façon, nous n'avons pas besoin de prêter attention à davantage de détails sur la sauvegarde de la base de données et devons uniquement nous concentrer sur l'exportation et le plan d'exportation de la base de données.

Commande d'exportation

À l'aide de cet extrait d'une ligne, vous pouvez rapidement exporter la base de données vers un fichier SQL. De nombreuses applications utilisent la commande suivante pour exporter les données de la base de données.

mysqldump -u[user] -p[pass] [db] > [file_path]
Copier après la connexion

Comme vous pouvez le voir, nous devons transmettre le nom d'utilisateur, le mot de passe et la base de données qui doivent être exportés, puis rediriger la sortie vers le fichier spécifié. Il est simple et pratique à consommer et a des effets remarquables.

Encapsulons maintenant cette commande à l'aide de la commande artisan pour faciliter son exécution et son ajout aux tâches planifiées.

Échauffement de l'interface de la console Artiasn

Un point de départ important pour l'intégration des commandes shell à l'aide de la console artisanale (console) est de pouvoir écrire une fois et s'exécuter partout. Ce que nous devons faire, c'est configurer et utiliser ces configurations. Cela signifie qu'une fois qu'un paramètre est modifié, nous n'avons pas besoin de l'ajuster via la commande elle-même. Ensuite, nous pouvons créer cette commande de console.

Créez une commande personnalisée en exécutant la commande php artisan make:comman. Ici, notre commande est nommée BackupDatabase. Après avoir créé votre commande, Laravel enregistrera automatiquement la commande auprès du système. Il ne vous reste plus qu'à définir la signature de la commande.

Prenons un aperçu de ce fichier de commande ; nous expliquerons comment il fonctionne plus tard :

<?php namespace App\Console\Commands;

use Illuminate\Console\Command;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;

class BackupDatabase extends Command
{
    protected $signature = &#39;db:backup&#39;;

    protected $description = &#39;Backup the database&#39;;

    protected $process;

    public function __construct()
    {
        parent::__construct();

        $this->process = new Process(sprintf(
            'mysqldump -u%s -p%s %s > %s',
            config('database.connections.mysql.username'),
            config('database.connections.mysql.password'),
            config('database.connections.mysql.database'),
            storage_path('backups/backup.sql')
        ));
    }

    public function handle()
    {
        try {
            $this->process->mustRun();

            $this->info('The backup has been proceed successfully.');
        } catch (ProcessFailedException $exception) {
            $this->error('The backup process has been failed.');
        }
    }
}
Copier après la connexion

Comme vous pouvez le voir, notre signature de commande est db:backup. Puisque Laravel dispose déjà d’un espace de commande db, cette commande est plus claire.

Dans le constructeur, nous instancions une nouvelle instance de SymfonyComponentProcessProcess. La raison est qu'ici nous devons utiliser le composant Process de Symfony - plutôt que de simplement appeler la fonction shell_exec. Ce composant offre de nombreuses fonctionnalités intéressantes. Par exemple, si un processus échoue, nous pouvons lever une exception, puis la gérer efficacement.

Si vous utilisez la méthode de traitement run(), vous devez détecter manuellement les erreurs en cours d'exécution et lever des exceptions. Et grâce à la méthode mustRun(), elle lèvera automatiquement une exception pour nous. Vous pouvez obtenir plus d'informations dans la documentation.

Nous transmettons la commande shell et les paramètres requis dans la fonction sprintf(), qui remplace les espaces réservés par les paramètres réels. Après avoir traité l'instance de processus, nous pouvons passer à l'étape suivante de la méthode handle)(.

Dans la méthode handle, nous avons un code try-catch Tout d'abord, nous appelons la méthode mustRun() S'il n'y a pas d'erreur, nous envoyons un message vert à la console ; sinon, une exception ProcessFailedException est levée et capturée dans le fichier. attraper le bloc de code et afficher les informations d'erreur sur la console

Et ensuite ? Si nous exécutons la commande php artisan db:backup, nous irons dans la base de données ici et l'enregistrerons dans . Le fichier 🎜>storage/backups/backup.sql fonctionne bien, cependant, nous avons encore du travail à faire, qui consiste à écrire des tâches planifiées pour les tâches de sauvegarde >Tout d'abord, vous pouvez facilement créer des tâches planifiées dans Laravel. . Il fournit une interface API intégrée pour définir des tâches simples et prenant en charge les opérations en chaîne. Avant de continuer à lire cet article, il est fortement recommandé de lire la traduction chinoise de sa documentation > Ensuite, accédez à la

Console. /Kernel.php

et regardez la fonction

schedule()

Nous pouvons définir la tâche et le cycle d'exécution de la tâche

tous les lundis à 23h00

Exécuter le plan. est codé comme suit : N'est-ce pas simple ? Ce qui est encore mieux, c'est que vous pouvez définir ici autant de commandes que vous le souhaitez. Traitez ces tâches séparément à l'heure spécifiée Pour exécuter ce planificateur, nous devons exécuter la commande php artisan planning:run et elle déclenchera toutes les commandes qui doivent être exécutées. C'est génial, nous pouvons déclencher n'importe quelle commande correspondante à un moment spécifié. time avec une seule ligne de commande

protected function schedule(Schedule $schedule)
{
    $schedule->command('db:backup')->mondays()->at('23:00');
}
Copier après la connexion
Mais le problème actuel est de savoir comment gérer le planificateur lui-même. C'est un peu comme un problème de poule et d'œuf, mais je n'y crois pas si compliqué.

Utilisez Forge pour configurer le planificateur

Si vous avez toujours besoin d'une assistance de base liée aux principes d'exécution de CORN, Mohamed Said propose une série d'articles qui expliquent en profondeur les connaissances liées à CRON. Le point clé est que nous n'avons pas besoin de créer un minuteur CRON pour chaque tâche planifiée. Il nous suffit de définir la chance d'exécution de la tâche comme introduit précédemment, puis d'exécuter l'appelant de la tâche.

Cependant, nous devons définir l'heure d'exécution de la commande php artisan planning:run. Si vous utilisez Laravel Forge, vous pouvez facilement créer des tâches planifiées. Accédez simplement à l'onglet Planificateur et vous pourrez créer la tâche planifiée de votre choix.

Comment utiliser Larave pour créer une tâche de planification de sauvegarde de base de données MySQL

Comme vous pouvez le voir, la commande schedule:run a été ajoutée par défaut. définissez la fréquence des tâches (fréquence) et remplacez la commande par défaut par la commande de votre serveur.

S'il est prêt, le planificateur s'exécutera à chaque fois au moment approprié et déclenchera l'exécution de toutes les commandes.

Résumé

C'est formidable que nous puissions fournir une solution légère sans compter sur un package plus volumineux. Ici, nous pouvons également profiter de Laravel pour répondre à nos besoins.

Nous pouvons facilement exporter la base de données à l'aide du composant Process et l'encapsuler dans la commande artisan. Nous pouvons alors rapidement mettre en place un cycle d'exécution de notre commande et le planificateur de Laravel se chargera du reste. Nous pourrions simplement nous allonger et faire le travail.

Recommandations associées :

Le processus de conception du système de gestion de configuration sous le framework Laravel (avec code)

Comment créer et utiliser le laravel modèle de modèle de cadre

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Choisir entre PHP et Python: un guide Choisir entre PHP et Python: un guide Apr 18, 2025 am 12:24 AM

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

Impact de PHP: développement Web et au-delà Impact de PHP: développement Web et au-delà Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP et Python: une plongée profonde dans leur histoire PHP et Python: une plongée profonde dans leur histoire Apr 18, 2025 am 12:25 AM

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

Résolvez le problème de la connexion de la base de données: un cas pratique d'utilisation de la bibliothèque Minii / DB Résolvez le problème de la connexion de la base de données: un cas pratique d'utilisation de la bibliothèque Minii / DB Apr 18, 2025 am 07:09 AM

J'ai rencontré un problème délicat lors du développement d'une petite application: la nécessité d'intégrer rapidement une bibliothèque d'opération de base de données légère. Après avoir essayé plusieurs bibliothèques, j'ai constaté qu'ils avaient trop de fonctionnalités ou ne sont pas très compatibles. Finalement, j'ai trouvé Minii / DB, une version simplifiée basée sur YII2 qui a parfaitement résolu mon problème.

Exemple d'introduction de Laravel Exemple d'introduction de Laravel Apr 18, 2025 pm 12:45 PM

Laravel est un cadre PHP pour la création facile des applications Web. Il fournit une gamme de fonctionnalités puissantes, notamment: Installation: Installez le Laravel CLI globalement avec Composer et créez des applications dans le répertoire du projet. Routage: définissez la relation entre l'URL et le gestionnaire dans Routes / web.php. Voir: Créez une vue dans les ressources / vues pour rendre l'interface de l'application. Intégration de la base de données: fournit une intégration prête à l'emploi avec des bases de données telles que MySQL et utilise la migration pour créer et modifier des tables. Modèle et contrôleur: le modèle représente l'entité de la base de données et le contrôleur traite les demandes HTTP.

Comment apprendre Laravel comment apprendre Laravel gratuitement Comment apprendre Laravel comment apprendre Laravel gratuitement Apr 18, 2025 pm 12:51 PM

Vous voulez apprendre le cadre de Laravel, mais ne souffrez pas de ressources ni de pression économique? Cet article vous fournit un apprentissage gratuit de Laravel, vous apprenant à utiliser des ressources telles que les plateformes en ligne, les documents et les forums communautaires pour jeter une base solide pour votre parcours de développement PHP de la mise en place de maîtrise.

L'utilisation continue de PHP: raisons de son endurance L'utilisation continue de PHP: raisons de son endurance Apr 19, 2025 am 12:23 AM

Ce qui est encore populaire, c'est la facilité d'utilisation, la flexibilité et un écosystème fort. 1) La facilité d'utilisation et la syntaxe simple en font le premier choix pour les débutants. 2) étroitement intégré au développement Web, excellente interaction avec les demandes HTTP et la base de données. 3) L'énorme écosystème fournit une multitude d'outils et de bibliothèques. 4) La nature active et la nature open source les adaptent à de nouveaux besoins et tendances technologiques.

See all articles