diff --git a/.env.example b/.env.example index 79b288cd..3ebfeaa3 100644 --- a/.env.example +++ b/.env.example @@ -90,3 +90,7 @@ HARIM_EDIT_ACCESS_USERNAME= HARIM_NEED_GUARANTEE_LETTER_URL= HARIM_NEED_GUARANTEE_LETTER_PASSWORD= HARIM_NEED_GUARANTEE_LETTER_USERNAME= + +BACKUP_TARGET_DIR= +BACKUP_USER= +BACKUP_PASSWORD= \ No newline at end of file diff --git a/app/Console/Commands/BackupDatabaseCommand.php b/app/Console/Commands/BackupDatabaseCommand.php new file mode 100644 index 00000000..1d0d6ca8 --- /dev/null +++ b/app/Console/Commands/BackupDatabaseCommand.php @@ -0,0 +1,51 @@ +forever()->run("sudo mariadb-backup --backup --target-dir={$path}/{$time} --user={$user} --password={$password}"); + + if ($backup->failed()) { + Log::channel('mariadb-backup')->info("Backup failed at {$time}"); + } + + $prepare = Process::path($path)->forever()->run("sudo mariadb-backup --prepare --target-dir={$path}/{$time}"); + + if ($prepare->failed()) { + Log::channel('mariadb-backup')->info("Preparation failed at {$time}"); + } + + Log::channel('mariadb-backup')->info("Backup successful at {$time}"); + + $this->info('done'); + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index f1f2d616..815e0d20 100755 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -39,6 +39,9 @@ class Kernel extends ConsoleKernel $schedule->command("webservice:roadobserved --daily-mode") ->dailyAt('00:45')->appendOutputTo(storage_path('logs/nikarayan.log')); + + $schedule->command("db:backup") + ->weekly()->at('03:00')->appendOutputTo(storage_path('logs/mariadb-backup.log')); } /** diff --git a/app/Models/Mission.php b/app/Models/Mission.php index 347c738d..5d1c5431 100644 --- a/app/Models/Mission.php +++ b/app/Models/Mission.php @@ -26,7 +26,7 @@ class Mission extends Model protected function area(): Attribute { return Attribute::make( - get: fn($value) => json_decode($value) + get: fn($value) => json_decode($value, true) ); } diff --git a/app/Services/PaymentService.php b/app/Services/PaymentService.php index bb5d2e68..cfe90719 100644 --- a/app/Services/PaymentService.php +++ b/app/Services/PaymentService.php @@ -23,7 +23,7 @@ class PaymentService 'type' => 1, 'instanceid' => 123, 'ownerid' => $driver_national_code, - 'calculationBox' => "{\"rows\":[{\"amount\":" . $final_amount . ",\"code\":\"7070021060000015\"}]}" + 'calculationBox' => "{\"rows\":[{\"amount\":" . $final_amount . ",\"code\":\"7070011026200593\"}]}" ); $ch = curl_init(); diff --git a/config/global_variables.php b/config/global_variables.php index cc7b9df3..886160ad 100644 --- a/config/global_variables.php +++ b/config/global_variables.php @@ -2,4 +2,7 @@ return [ 'IS_DEVELOPMENT_ENV' => env('IS_DEVELOPMENT_ENV', false), + "BACKUP_TARGET_DIR" => env('BACKUP_TARGET_DIR'), + "BACKUP_USER" => env('BACKUP_USER'), + "BACKUP_PASSWORD" => env('BACKUP_PASSWORD'), ]; diff --git a/config/logging.php b/config/logging.php index dced418b..3a6fc052 100644 --- a/config/logging.php +++ b/config/logging.php @@ -135,6 +135,11 @@ return [ 'path' => storage_path('logs/fms/error_rate_service.log'), 'level' => 'info', ], - ], + 'mariadb-backup' => [ + 'driver' => 'single', + 'path' => storage_path('logs/mariadb-backup.log'), + 'level' => 'info', + ], + ], ];