{"id":2250,"date":"2025-05-28T08:55:49","date_gmt":"2025-05-28T08:55:49","guid":{"rendered":"https:\/\/200oksolutions.com\/blog\/?p=2250"},"modified":"2025-12-04T07:44:03","modified_gmt":"2025-12-04T07:44:03","slug":"laravel-12-automatic-database-backup","status":"publish","type":"post","link":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/","title":{"rendered":"How to Set Up Automatic Database Backups (Daily, Weekly, Monthly) in Laravel 12"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM.png\" alt=\"Diagram showing Laravel task scheduling flow\" class=\"wp-image-2255\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM.png 1024w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM-300x300.png 300w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM-150x150.png 150w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM-768x768.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>When building applications that handle critical data, it&#8217;s essential to implement a reliable backup strategy. In Laravel 12, you can automate your database backups on a daily, weekly, or monthly basis using Laravel\u2019s task scheduling system.<\/p>\n\n\n\n<p>In this guide, we\u2019ll walk you through the process of setting up automatic database backups in Laravel 12. You\u2019ll learn how to create a custom Artisan command that backs up your database and how to schedule it to run automatically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why Backups Matter<\/strong><\/h2>\n\n\n\n<p>Data loss can happen unexpectedly\u2014hardware failures, human errors, or system bugs can corrupt or delete vital information. Implementing automated backups ensures you have recovery points and can minimize the impact of such incidents.<\/p>\n\n\n\n<p><strong>Steps to Configure Automated Database Backups in Laravel 12<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2705 Step 1: Create a New Laravel Project (Optional)<\/strong><\/h3>\n\n\n\n<p>If you&#8217;re starting fresh, you can install a new Laravel 12 application using Composer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer create-project laravel\/laravel db-backup<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2705 Step 2: Create a Custom Backup Command<\/strong><\/h3>\n\n\n\n<p>Use Artisan to create a new console command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:command DatabaseBackUp<\/code><\/pre>\n\n\n\n<p>This will generate a file located at app\/Console\/Commands\/DatabaseBackUp.php.<\/p>\n\n\n\n<p>Update the generated file with the following logic:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nnamespace App\\Console\\Commands;\nuse Illuminate\\Console\\Command;\nclass DatabaseBackUp extends Command\n{\n    protected $signature = 'database:backup';\n    protected $description = 'Command description';\n    public function handle()\n    {\n        $filename = 'backup-' . now()->format('Y-m-d') . '.sql';\n        $mysqldumpPath = 'D:\\\\xampp\\\\mysql\\\\bin\\\\mysqldump.exe';\n        $command = sprintf(\n            '\"%s\" --user=%s --password=%s --host=%s %s > %s',\n            $mysqldumpPath,\n            env('DB_USERNAME'),\n            env('DB_PASSWORD'),\n            env('DB_HOST'),\n            env('DB_DATABASE'),\n            storage_path('app\/backup\/' . $filename)\n        );\n        exec($command);\n        $this->info('Database backup (uncompressed) created: ' . $filename);\n    }\n}<\/code><\/pre>\n\n\n\n<p><strong>Note:<\/strong> Ensure that mysqldump is installed and accessible from your server&#8217;s command line.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2705 Step 3: Create the Backup Directory<\/strong><\/h3>\n\n\n\n<p>Before running the backup command, you need a folder to store the backups:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>storage\/app\/backup<\/code><\/pre>\n\n\n\n<p>Make sure you give permission to put the backup file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2705 Step 4: Schedule the Backup Command<\/strong><\/h3>\n\n\n\n<p>To run the command automatically, schedule it in Laravel\u2019s task scheduler.<\/p>\n\n\n\n<p>Open routes\/console.php and add the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use Illuminate\\Support\\Facades\\Schedule;\n\nSchedule::command('database:backup')-&gt;daily();<\/code><\/pre>\n\n\n\n<p>You can also schedule it weekly or monthly like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Schedule::command('database:backup')-&gt;weekly();\n\nSchedule::command('database:backup')-&gt;monthly();<\/code><\/pre>\n\n\n\n<p>To test it manually, run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan database:backup<\/code><\/pre>\n\n\n\n<p>This should create a new .gz backup file in storage\/app\/backup.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u2705 Step 5: Configure Cron on the Server<\/strong><\/h3>\n\n\n\n<p>To enable Laravel&#8217;s task scheduling in production, add a cron job on your server:<\/p>\n\n\n\n<p>Run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>crontab -e<\/code><\/pre>\n\n\n\n<p>Then add the following line:<\/p>\n\n\n\n<p>* * * * * php \/path\/to\/artisan schedule:run 1&gt;&gt; \/dev\/null 2&gt;&amp;1<\/p>\n\n\n\n<p><strong>OR<\/strong><\/p>\n\n\n\n<p>* * * * * cd \/var\/www\/laravel-project-folder &amp;&amp; php artisan schedule:run &gt;&gt; \/dev\/null 2&gt;&amp;1&nbsp;<\/p>\n\n\n\n<p>Replace \/path-to-your-project\/ with the full path to your Laravel application&#8217;s root directory.<\/p>\n\n\n\n<p>This cron job will execute Laravel&#8217;s scheduler every minute, and Laravel will handle the timing of your backup command.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final Thoughts<\/strong><\/h2>\n\n\n\n<p>Automated database backups are a crucial part of any robust deployment strategy. With Laravel 12, setting up scheduled backups is straightforward and integrates seamlessly into your application workflow.<\/p>\n\n\n\n<p>By following the steps above, you can rest easy knowing your application data is being backed up on a regular basis.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>At <strong>200OK Solutions<\/strong>, we help Laravel developers and businesses protect their data with fully automated backup solutions. Whether you need daily, weekly, or monthly backups, our Laravel 12 automation strategies ensure your application data is always secure, up-to-date, and recoverable. With expert setup of Artisan commands, task scheduling, and storage management, we safeguard your systems against data loss\u2014so you can focus on innovation, not infrastructure.<\/summary><div class=\"is-default-size wp-block-site-logo\"><a href=\"https:\/\/www.200oksolutions.com\/blog\/\" class=\"custom-logo-link light-mode-logo\" rel=\"home\"><img decoding=\"async\" width=\"484\" height=\"191\" src=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2026\/01\/cropped-200ok_logo.png\" class=\"custom-logo\" alt=\"Web Development, Software, and App Blog | 200OK Solutions\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2026\/01\/cropped-200ok_logo.png 484w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2026\/01\/cropped-200ok_logo-300x118.png 300w\" sizes=\"(max-width: 484px) 100vw, 484px\" \/><\/a><\/div><\/details>\n","protected":false},"excerpt":{"rendered":"<p>When building applications that handle critical data, it&#8217;s essential to implement a reliable backup strategy. In Laravel&hellip;<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[906,910,908,909,905,904,240,907,207],"class_list":["post-2250","post","type-post","status-publish","format-standard","hentry","category-laravel","tag-artisan-commands","tag-automated-backups","tag-cron-jobs","tag-data-security","tag-database-backup","tag-laravel-12","tag-php","tag-task-scheduling","tag-web-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Set Up Automatic Database Backups (Daily, Weekly, Monthly) in Laravel 12 Web Development, Software, and App Blog | 200OK Solutions<\/title>\n<meta name=\"description\" content=\"Learn how to automate daily, weekly, and monthly database backups in Laravel 12 using custom Artisan commands and task scheduling to safeguard your application data.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set Up Automatic Database Backups (Daily, Weekly, Monthly) in Laravel 12 Web Development, Software, and App Blog | 200OK Solutions\" \/>\n<meta property=\"og:description\" content=\"Learn how to automate daily, weekly, and monthly database backups in Laravel 12 using custom Artisan commands and task scheduling to safeguard your application data.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development, Software, and App Blog | 200OK Solutions\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-28T08:55:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-04T07:44:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM.png\" \/>\n<meta name=\"author\" content=\"Piyush Solanki\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Piyush Solanki\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Set Up Automatic Database Backups (Daily, Weekly, Monthly) in Laravel 12 Web Development, Software, and App Blog | 200OK Solutions","description":"Learn how to automate daily, weekly, and monthly database backups in Laravel 12 using custom Artisan commands and task scheduling to safeguard your application data.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/","og_locale":"en_US","og_type":"article","og_title":"How to Set Up Automatic Database Backups (Daily, Weekly, Monthly) in Laravel 12 Web Development, Software, and App Blog | 200OK Solutions","og_description":"Learn how to automate daily, weekly, and monthly database backups in Laravel 12 using custom Artisan commands and task scheduling to safeguard your application data.","og_url":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/","og_site_name":"Web Development, Software, and App Blog | 200OK Solutions","article_published_time":"2025-05-28T08:55:49+00:00","article_modified_time":"2025-12-04T07:44:03+00:00","og_image":[{"url":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM.png","type":"","width":"","height":""}],"author":"Piyush Solanki","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Piyush Solanki","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/#article","isPartOf":{"@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/"},"author":{"name":"Piyush Solanki","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/e07f6b8e3c9a90ce7b3b09427d26155e"},"headline":"How to Set Up Automatic Database Backups (Daily, Weekly, Monthly) in Laravel 12","datePublished":"2025-05-28T08:55:49+00:00","dateModified":"2025-12-04T07:44:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/"},"wordCount":489,"commentCount":0,"publisher":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/#primaryimage"},"thumbnailUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM.png","keywords":["Artisan Commands","Automated Backups","Cron Jobs","Data Security","Database Backup","Laravel 12","PHP","Task Scheduling","Web Development"],"articleSection":["Laravel"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/#respond"]}]},{"@type":["WebPage","SearchResultsPage"],"@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/","url":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/","name":"How to Set Up Automatic Database Backups (Daily, Weekly, Monthly) in Laravel 12 Web Development, Software, and App Blog | 200OK Solutions","isPartOf":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/#primaryimage"},"image":{"@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/#primaryimage"},"thumbnailUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM.png","datePublished":"2025-05-28T08:55:49+00:00","dateModified":"2025-12-04T07:44:03+00:00","description":"Learn how to automate daily, weekly, and monthly database backups in Laravel 12 using custom Artisan commands and task scheduling to safeguard your application data.","breadcrumb":{"@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/#primaryimage","url":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM.png","contentUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-28-2025-02_32_04-PM.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.200oksolutions.com\/blog\/laravel-12-automatic-database-backup\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.200oksolutions.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Set Up Automatic Database Backups (Daily, Weekly, Monthly) in Laravel 12"}]},{"@type":"WebSite","@id":"https:\/\/www.200oksolutions.com\/blog\/#website","url":"https:\/\/www.200oksolutions.com\/blog\/","name":"Web Development, Software, and App Blog | 200OK Solutions","description":"","publisher":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.200oksolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.200oksolutions.com\/blog\/#organization","name":"Web Development Blog | Software Blog | App Blog","url":"https:\/\/www.200oksolutions.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/09\/200ok_logo-CGzMrWDu.png","contentUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/09\/200ok_logo-CGzMrWDu.png","width":500,"height":191,"caption":"Web Development Blog | Software Blog | App Blog"},"image":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/200ok_solutions\/"]},{"@type":"Person","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/e07f6b8e3c9a90ce7b3b09427d26155e","name":"Piyush Solanki","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/962a2b0b4db856e6851ec7d838597a0395adcaae9c0091d223de9942a4254461?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/962a2b0b4db856e6851ec7d838597a0395adcaae9c0091d223de9942a4254461?s=96&d=mm&r=g","caption":"Piyush Solanki"},"description":"Piyush is a seasoned PHP Tech Lead with 10+ years of experience architecting and delivering scalable web and mobile backend solutions for global brands and fast-growing SMEs. He specializes in PHP, MySQL, CodeIgniter, WordPress, and custom API development, helping businesses modernize legacy systems and launch secure, high-performance digital products. He collaborates closely with mobile teams building Android &amp; iOS apps , developing RESTful APIs, cloud integrations, and secure payment systems using platforms like Stripe, AWS S3, and OTP\/SMS gateways. His work extends across CMS customization, microservices-ready backend architectures, and smooth product deployments across Linux and cloud-based environments. Piyush also has a strong understanding of modern front-end technologies such as React and TypeScript, enabling him to contribute to full-stack development workflows and advanced admin panels. With a successful delivery track record in the UK market and experience building digital products for sectors like finance, hospitality, retail, consulting, and food services, Piyush is passionate about helping SMEs scale technology teams, improve operational efficiency, and accelerate innovation through backend excellence and digital tools.","url":"https:\/\/www.200oksolutions.com\/blog\/author\/piyush\/"}]}},"_links":{"self":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/2250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=2250"}],"version-history":[{"count":4,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/2250\/revisions"}],"predecessor-version":[{"id":2258,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/2250\/revisions\/2258"}],"wp:attachment":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=2250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=2250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=2250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}