Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ot-apollo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home3/achieve/public_html/knowledgebase/wp-includes/functions.php on line 6131

Warning: Cannot modify header information - headers already sent by (output started at /home3/achieve/public_html/knowledgebase/wp-includes/functions.php:6131) in /home3/achieve/public_html/knowledgebase/wp-includes/feed-rss2.php on line 8
Helpers – Knowledge https://knowledge.achieveee.com Wed, 03 Apr 2019 14:59:24 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://knowledge.achieveee.com/wp-content/uploads/2016/05/cropped-favicon-32x32.png Helpers – Knowledge https://knowledge.achieveee.com 32 32 Scheduling MySQL backups with Laravel https://knowledge.achieveee.com/knowledge_base/scheduling-mysql-backups-with-laravel/?utm_source=rss&utm_medium=rss&utm_campaign=scheduling-mysql-backups-with-laravel https://knowledge.achieveee.com/knowledge_base/scheduling-mysql-backups-with-laravel/#respond Wed, 03 Apr 2019 14:50:15 +0000 http://knowledge.achieveee.com/?post_type=knowledge_base&p=2591 To manually dump the database you can run the following one-liner code

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

But what if you want to automate the process? Listing down the steps one by one:

    1. Setup cron entry to your server
      * * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
    2. Create a command BackupDatabase by running the following code:
      php artisan make:command BackupDatabase
    3. Navigate to app/Console/Commands/BackupDatabase.php and replace the code the following:
      <?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 = 'db:backup';
      
          protected $description = 'Backup the database';
      
          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('app/backups/backup-' . time() . '.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.');
              }
          }
      }
    4. Schedule the backup task, navigate to app/Console/Kernel.php and append the following line of code inside schedule method to run database backups every Saturday at 11PM. You can set the frequency as per your requirements
      $schedule->command('db:backup')->saturdays()->at('23:00');
    5. Create backups directory inside storage/app directory and place a .gitignore file inside backups directory with the following code
      *
      !.gitignore

That’s it you’ve now enabled weekly automated database backups
For more information and credits: https://pineco.de/scheduling-mysql-backups-with-laravel/

]]>
https://knowledge.achieveee.com/knowledge_base/scheduling-mysql-backups-with-laravel/feed/ 0