検索
ホームページ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バージョンは何ですか?最新のLaravelバージョンは何ですか?May 09, 2025 am 12:09 AM

2023年10月の時点で、Laravelの最新バージョンは10.xです。 1.Laravel10.xはPHP8.1をサポートし、開発効率を向上させます。 2.JetStreamは、LiveWireとInertia.jsのサポートを改善し、フロントエンドの開発を簡素化します。 3.ELOQUENTORMフルテキスト検索機能を追加して、データ処理のパフォーマンスを向上させます。 4.依存関係パッケージの互換性に注意してください。それを使用して、キャッシュ最適化パフォーマンスを適用してください。

Laravelの移行:データベース管理に関する初心者向けガイドLaravelの移行:データベース管理に関する初心者向けガイドMay 09, 2025 am 12:07 AM

laravelMigrationsStreamLedinedAtabaseManagementByprovidingviding version controlforyourdatabaseschema.1)theyoutodedodefineSteStretructure ofyourdatabase、Making eaSytomeChangeSesime.2)移民の移民は、環境を取得することを確認します

Laravel Migration:ベストコーディングガイドLaravel Migration:ベストコーディングガイドMay 09, 2025 am 12:03 AM

Laravelの移行システムは、開発者がデータベースを設計および管理するための強力なツールです。 1)移行ファイルに明確に名前が付けられていることを確認し、動詞を使用して操作を説明します。 2)フィールドに一意の制約を追加するなど、データの整合性とパフォーマンスを検討します。 3)トランザクション処理を使用して、データベースの一貫性を確保します。 4)パフォーマンスを最適化するために、移行の最後にインデックスを作成します。 5)移行の原子性を維持すると、各ファイルには1つの論理操作のみが含まれます。これらのプラクティスを通じて、効率的で保守可能な移行コードを作成できます。

最新のLaravelバージョン:最新の機能を最新の状態に保ちます最新のLaravelバージョン:最新の機能を最新の状態に保ちますMay 09, 2025 am 12:03 AM

Laravelの最新バージョンは2023年初頭にリリースされた10.xです。このバージョンは、Eloquentormの機能と簡素化されたルーティングシステムをもたらし、開発効率とパフォーマンスを向上させますが、問題を防ぐためにアップグレード中に慎重にテストする必要があります。

Mastering Laravel Soft Deletes:ベストプラクティスと高度なテクニックMastering Laravel Soft Deletes:ベストプラクティスと高度なテクニックMay 08, 2025 am 12:25 AM

laravelsoftdeleteSallow withoutremovingRecordsfromthedatabase.to implement:1)usetheSoftdeStreateStraitinyourModel.2)usetrashed()toincludeSoft-deletedRecordSinqueries.3)createcustomscopeslisededcoded()for Strimed()for

Laravel Soft Deletes:レコードの復元と永続的な削除Laravel Soft Deletes:レコードの復元と永続的な削除May 08, 2025 am 12:24 AM

Laravelでは、Restore()メソッドを使用してソフト削除されたレコードを復元し、ForcedElete()メソッドを永続的に削除します。 1)trashed() - > find() - > restore()を使用して単一のレコードを復元し、onlytrashed() - > restore()を使用して単一のレコードを復元します。 2)withtrashed() - > find() - > forcedelete()を使用して単一のレコードを永続的に削除し、複数のレコードを使用してonlytrashed() - > forcedelete()を使用します。

現在のLaravelリリース:今日ダウンロードしてアップグレードしてください!現在のLaravelリリース:今日ダウンロードしてアップグレードしてください!May 08, 2025 am 12:22 AM

拡張されたEloquentorm機能と新しいルーティング機能を提供するため、最新のLaravelバージョンをダウンロードしてアップグレードする必要があります。アップグレードするには、次の手順に従います。1。現在のアプリケーションをバックアップします。2。composer.jsonファイルを最新バージョンに更新します。3。更新コマンドを実行します。破棄された機能やパッケージの互換性など、いくつかの一般的な問題が発生する可能性がありますが、これらの問題は参照文書とコミュニティサポートを通じて解決できます。

Laravel:最後のバージョンにいつ更新する必要がありますか?Laravel:最後のバージョンにいつ更新する必要がありますか?May 08, 2025 am 12:18 AM

あなたは、clearlylyly outweighthecosts.1)newfeaturesandimprovementscanenhanceourapplication.2)securityupdateseupdates arecrneraptreaddressed.3)パフォーマンスゲインズマイスハイティファーアップデートアップアップドラッドルスエルアップアップルームスルズエンス

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール