検索
ホームページPHPフレームワークLaravelLarave を使用して MySQL データベースのバックアップ スケジュール タスクを作成する方法

この記事の内容は、Larave を使用して MySQL データベースのバックアップ計画タスクを作成する方法についてです。必要な方は参考にしていただければ幸いです。

ターミナルで 1 行のコマンドを実行すると、データベース全体をエクスポートできます。この解決策は単純かつ直接的であるだけでなく、効果的でもあります。しかし、さらに自動化されたソリューションもあります。それが何なのか調べてみましょう!

Larave を使用して MySQL データベースのバックアップ スケジュール タスクを作成する方法

背景

数日前、私は間違ったデータベースにログインし、18,000行のオンラインデータログを強制終了してしまいました。さらに悪いことに、このデータベースのバックアップがないのです。次に、データベースのエクスポートと SQL ファイルへの保存を自動化するスクリプトを作成することにしました。

また、強力なデータバックアップシステムが必要な場合は、この拡張機能をチェックしてください。このようにすると、データベースのバックアップの詳細に注意を払う必要がなく、データベースのエクスポートとエクスポート計画だけに集中する必要があります。

エクスポート コマンド

この 1 行のスニペットを使用すると、データベースを SQL ファイルにすばやくエクスポートできます。多くのアプリケーションは、次のコマンドを使用してデータベースからデータをエクスポートします。

mysqldump -u[user] -p[pass] [db] > [file_path]

ご覧のとおり、エクスポートする必要があるユーザー名、パスワード、DB を渡して、出力を指定されたファイルにリダイレクトする必要があります。摂取するのが簡単で便利であり、驚くべき効果があります。

ここで、artisan コマンドを使用してこのコマンドをカプセル化して、実行とスケジュールされたタスクへの追加を簡単にしましょう。

Artiasn コンソール インターフェースのウォームアップ

Artisan Console (コンソール) を使用してシェル コマンドを統合するための重要な出発点は、一度記述すればどこでも実行できることです。私たちが行う必要があるのは、これらの構成を構成して使用することです。これは、パラメーターが変更されると、コマンド自体を使用して調整する必要がないことを意味します。次に、このコンソール コマンドを作成します。

php Artisan make:comman コマンドを実行して、カスタム コマンドを作成します。ここでのコマンドの名前は BackupDatabase です。コマンドを作成した後、Laravel はコマンドをシステムに自動的に登録します。必要なのは、コマンドの署名を定義することだけです。

このコマンド ファイルをプレビューしてみましょう。どのように機能するかは後ほど説明します:

<?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.');
        }
    }
}

ご覧のとおり、コマンド シグネチャは db:backup です。 Laravel にはすでに db コマンド空間があるため、このコマンドはより明確です。

コンストラクターで、新しい SymfonyComponentProcessProcess インスタンスをインスタンス化します。その理由は、ここでは単に shell_exec 関数を呼び出すのではなく、Symfony の Process コンポーネントを使用する必要があるためです。このコンポーネントは多くの優れた機能を提供します。たとえば、プロセスが失敗した場合、例外をスローして、その例外を効率的に処理できます。

プロセスの run() メソッドを使用している場合は、実行エラーを手動で検出し、例外をスローする必要があります。そして、mustRun() メソッドを通じて、自動的に例外がスローされます。詳細については、ドキュメントを参照してください。

シェルコマンドと必要なパラメーターをsprintf()関数に渡します。これにより、プレースホルダーが実際のパラメーターに置き換えられます。プロセス インスタンスを処理した後、handle)( メソッドを使用して次のステップに進むことができます。

handle メソッドには、try-catch コード ブロックがあります。まず、mustRun() を呼び出します。メソッドでは、エラーがない場合は緑色のメッセージがコンソールに出力され、そうでない場合は ProcessFailedException 例外がスローされ、catch コード ブロックでキャプチャされ、エラー メッセージがコンソールに出力されます

次に何が起こるでしょうか? php 職人 db:backup コマンドを実行すると、データベースに移動して storage/backups/backup.sql ファイルに保存されますが、まだやるべき作業がいくつかあります。

バックアップタスクのスケジュールされたタスクを作成する

まず、Laravel では、簡単でチェーン操作をサポートする組み込みの API インターフェイスが提供されます。この記事を読み続ける場合は、ドキュメントの中国語翻訳を強くお勧めします。

Console/Kernel.php

ファイルに移動して、たとえば、schedule() 関数を確認します。実行計画は次のようにコーディングされています:

protected function schedule(Schedule $schedule)
{
    $schedule->command('db:backup')->mondays()->at('23:00');
}
さらに良いのは、ここで必要なだけコマンドを定義できることです。 このスケジューラーを実行するには、

phpArtisanschedule:run

コマンドを実行する必要があります。これにより、実行する必要があるすべてのコマンドがトリガーされます。これは、指定した時刻に任意のコマンドをトリガーできるという点で優れています。しかし、ここで問題となるのは、スケジューラー自体をどのように管理するかということです。これは卵が先か鶏が先かの問題に似ていますが、それほど複雑ではありません

Forge を使用してスケジューラを設定します

CORN の実行原則に関連する基本的なサポートがまだ必要な場合は、Mohamed Said が CRON 関連の知識を詳しく説明する一連の記事を用意しています。重要な点は、スケジュールされたタスクごとに CRON タイマーを作成する必要がないということです。前に紹介したようにタスク実行運を定義し、タスク呼び出し元を実行するだけです。

ただし、phpArtisanSchedule:runコマンドを実行する時間を設定する必要があります。 Laravel Forge を使用すると、スケジュールされたタスクを簡単に作成できます。 [スケジューラー] タブに移動するだけで、必要なスケジュールされたタスクを作成できます。

Larave を使用して MySQL データベースのバックアップ スケジュール タスクを作成する方法

ご覧のとおり、

schedule:run コマンドがデフォルトで追加されています。必要なのは、タスクのサイクル (頻度) を定義し、デフォルトのコマンドをサーバーのコマンドに置き換えることだけです。 。

準備ができていれば、スケジューラーは毎回適切な時間に実行され、すべてのコマンドの実行がトリガーされます。

まとめ

より大きなパッケージに依存せずに軽量なソリューションを提供できることを嬉しく思います。ここでは、ニーズを満たすために Laravel を活用することもできます。

Process コンポーネントを使用してデータベースを簡単にエクスポートし、artisan コマンドでカプセル化できます。その後、コマンドの実行サイクルをすばやく設定でき、残りは Laravel のスケジューラーが処理します。ただ横になって仕事をすることもできました。

関連する推奨事項:

Laravel フレームワークでの構成管理システムの設計プロセス (コード付き)

Laravel フレームワーク モデルの作成方法と使用方法

以上がLarave を使用して MySQL データベースのバックアップ スケジュール タスクを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Laravelの使用:PHPでWeb開発を合理化しますLaravelの使用:PHPでWeb開発を合理化しますApr 19, 2025 am 12:18 AM

Laravelは、次のようなWeb開発プロセスを最適化します。1。ルーティングシステムを使用してURL構造を管理します。 2。ブレードテンプレートエンジンを使用して、ビュー開発を簡素化します。 3.キューを介して時間のかかるタスクを処理します。 4. Eloquentormを使用して、データベース操作を簡素化します。 5.ベストプラクティスに従って、コードの品質と保守性を向上させます。

Laravel:PHP Webフレームワークの紹介Laravel:PHP Webフレームワークの紹介Apr 19, 2025 am 12:15 AM

Laravelは、強力なツールセットを提供し、開発プロセスを簡素化し、コードの保守性とスケーラビリティを向上させる最新のPHPフレームワークです。 1)Eloquentormはデータベース操作を簡素化します。 2)ブレードテンプレートエンジンは、フロントエンド開発を直感的にします。 3)職人のコマンドラインツールは、開発効率を向上させます。 4)パフォーマンスの最適化には、MVCアーキテクチャ、キューの処理、および書き込みテストケースの使用、キャッシュメカニズムの使用、キャッシュメカニズムの使用が含まれます。

Laravel:MVCアーキテクチャとベストプラクティスLaravel:MVCアーキテクチャとベストプラクティスApr 19, 2025 am 12:13 AM

LaravelのMVCアーキテクチャは、データロジック、プレゼンテーション、ビジネス処理の分離のためのモデル、ビュー、およびコントローラーを介して、コードの構造と保守性を向上させます。 1)モデルはデータを処理します。2)ビューは表示の責任があります。3)コントローラーはユーザー入力とビジネスロジックを処理します。このアーキテクチャにより、開発者はビジネスロジックに集中し、コードの泥沼に陥ることを避けることができます。

Laravel:主な機能と利点が説明されていますLaravel:主な機能と利点が説明されていますApr 19, 2025 am 12:12 AM

Laravelは、MVCアーキテクチャに基づいたPHPフレームワークで、簡潔な構文、強力なコマンドラインツール、便利なデータ操作、柔軟なテンプレートエンジンを備えています。 1.エレガントな構文と使いやすいAPIにより、開発が迅速かつ使いやすくなります。 2。職人コマンドラインツールは、コード生成とデータベース管理を簡素化します。 3.Eloquentormは、データ操作を直感的かつシンプルにします。 4.ブレードテンプレートエンジンは、高度なビューロジックをサポートしています。

Laravelを使用したバックエンドの構築:ガイドLaravelを使用したバックエンドの構築:ガイドApr 19, 2025 am 12:02 AM

Laravelは、エレガントな構文、豊富な機能、強力なコミュニティサポートを提供するため、バックエンドサービスの構築に適しています。 1)LaravelはMVCアーキテクチャに基づいており、開発プロセスを簡素化します。 2)Eloquentormが含まれ、データベース操作を最適化します。 3)Laravel's Ecosystemは、開発効率を向上させるために、職人、ブレード、ルーティングシステムなどのツールを提供します。

Laravelフレームワークのスキル共有Laravelフレームワークのスキル共有Apr 18, 2025 pm 01:12 PM

継続的な技術の進歩のこの時代において、現代のプログラマーにとって高度なフレームワークをマスターすることが重要です。この記事では、Laravelフレームワークであまり知られていないテクニックを共有することで、開発スキルを向上させるのに役立ちます。エレガントな構文と幅広い機能で知られるこの記事では、その強力な機能を掘り下げ、効率的で保守可能なWebアプリケーションを作成するための実用的なヒントとコツを提供します。

LaravelとThinkPhpの違いLaravelとThinkPhpの違いApr 18, 2025 pm 01:09 PM

LaravelとThinkPhpはどちらも人気のあるPHPフレームワークであり、開発における独自の利点と短所を持っています。この記事では、2つの深さを比較し、アーキテクチャ、機能、パフォーマンスの違いを強調して、開発者が特定のプロジェクトのニーズに基づいて情報に基づいた選択を行うのに役立ちます。

Laravelユーザーログイン機能リストLaravelユーザーログイン機能リストApr 18, 2025 pm 01:06 PM

Laravelのユーザーログイン機能の構築は重要なタスクであり、この記事では、ユーザー登録からログイン検証までのすべての重要なステップをカバーする包括的な概要を提供します。 Laravelの組み込み検証機能の力に飛び込み、特定のニーズに合わせてログインプロセスをカスタマイズして拡張することをガイドします。これらのステップバイステップの手順に従うことにより、Laravelアプリケーションのユーザーにシームレスなアクセスエクスペリエンスを提供する安全で信頼性の高いログインシステムを作成できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)