@if ($database->is_migrated && blank($database->custom_type))
Select the type of database to enable automated backups.
If your database is not listed, automated backups are not supported.
Set
@else @forelse($database->scheduledBackups as $backup) @if ($type == 'database') $backup->latest_log && data_get($backup->latest_log, 'status') === 'running', 'border-error' => $backup->latest_log && data_get($backup->latest_log, 'status') === 'failed', 'border-success' => $backup->latest_log && data_get($backup->latest_log, 'status') === 'success', 'border-gray-200 dark:border-coolgray-300' => !$backup->latest_log, ]) href="{{ route('project.database.backup.execution', [...$parameters, 'backup_uuid' => $backup->uuid]) }}"> @if ($backup->latest_log && data_get($backup->latest_log, 'status') === 'running')
@endif
@if ($backup->latest_log) data_get($backup->latest_log, 'status') === 'running', 'bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-200 dark:shadow-red-900/5' => data_get($backup->latest_log, 'status') === 'failed', 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-200 dark:shadow-green-900/5' => data_get($backup->latest_log, 'status') === 'success', ])> @php $statusText = match (data_get($backup->latest_log, 'status')) { 'success' => 'Success', 'running' => 'In Progress', 'failed' => 'Failed', default => ucfirst(data_get($backup->latest_log, 'status')), }; @endphp {{ $statusText }} @else No executions yet @endif

{{ $backup->frequency }}

@if ($backup->latest_log) Started: {{ formatDateInServerTimezone(data_get($backup->latest_log, 'created_at'), $backup->server()) }} @if (data_get($backup->latest_log, 'status') !== 'running')
Ended: {{ formatDateInServerTimezone(data_get($backup->latest_log, 'finished_at'), $backup->server()) }}
Duration: {{ calculateDuration(data_get($backup->latest_log, 'created_at'), data_get($backup->latest_log, 'finished_at')) }}
Finished {{ \Carbon\Carbon::parse(data_get($backup->latest_log, 'finished_at'))->diffForHumans() }} @endif @if ($backup->save_s3)
S3 Storage: Enabled @endif @if (data_get($backup->latest_log, 'status') === 'success') @php $size = data_get($backup->latest_log, 'size', 0); $sizeFormatted = $size > 0 ? number_format($size / 1024 / 1024, 2) . ' MB' : 'Unknown'; @endphp
Last Backup Size: {{ $sizeFormatted }} @endif @else Last Run: Never
Total Executions: 0 @if ($backup->save_s3)
S3 Storage: Enabled @endif @endif
@else
data_get($backup, 'id') === data_get($selectedBackup, 'id'), 'border-blue-500/50 border-dashed' => $backup->latest_log && data_get($backup->latest_log, 'status') === 'running', 'border-error' => $backup->latest_log && data_get($backup->latest_log, 'status') === 'failed', 'border-success' => $backup->latest_log && data_get($backup->latest_log, 'status') === 'success', 'border-gray-200 dark:border-coolgray-300' => !$backup->latest_log, 'border-coollabs' => data_get($backup, 'id') === data_get($selectedBackup, 'id'), ]) wire:click="setSelectedBackup('{{ data_get($backup, 'id') }}')"> @if ($backup->latest_log && data_get($backup->latest_log, 'status') === 'running')
@endif
@if ($backup->latest_log) data_get($backup->latest_log, 'status') === 'running', 'bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-200 dark:shadow-red-900/5' => data_get($backup->latest_log, 'status') === 'failed', 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-200 dark:shadow-green-900/5' => data_get($backup->latest_log, 'status') === 'success', ])> @php $statusText = match (data_get($backup->latest_log, 'status')) { 'success' => 'Success', 'running' => 'In Progress', 'failed' => 'Failed', default => ucfirst(data_get($backup->latest_log, 'status')), }; @endphp {{ $statusText }} @else No executions yet @endif

{{ $backup->frequency }} Backup

@if ($backup->latest_log) Started: {{ formatDateInServerTimezone(data_get($backup->latest_log, 'created_at'), $backup->server()) }} @if (data_get($backup->latest_log, 'status') !== 'running')
Ended: {{ formatDateInServerTimezone(data_get($backup->latest_log, 'finished_at'), $backup->server()) }}
Duration: {{ calculateDuration(data_get($backup->latest_log, 'created_at'), data_get($backup->latest_log, 'finished_at')) }}
Finished {{ \Carbon\Carbon::parse(data_get($backup->latest_log, 'finished_at'))->diffForHumans() }} @endif

Total Executions: {{ $backup->executions()->count() }} @if ($backup->save_s3)
S3 Storage: Enabled @endif @php $successCount = $backup->executions()->where('status', 'success')->count(); $totalCount = $backup->executions()->count(); $successRate = $totalCount > 0 ? round(($successCount / $totalCount) * 100) : 0; @endphp @if ($totalCount > 0)
Success Rate: $successRate >= 80, 'text-yellow-600' => $successRate >= 50 && $successRate < 80, 'text-red-600' => $successRate < 50, ])>{{ $successRate }}% ({{ $successCount }}/{{ $totalCount }}) @endif @if (data_get($backup->latest_log, 'status') === 'success') @php $size = data_get($backup->latest_log, 'size', 0); $sizeFormatted = $size > 0 ? number_format($size / 1024 / 1024, 2) . ' MB' : 'Unknown'; @endphp
Last Backup Size: {{ $sizeFormatted }} @endif @else Last Run: Never
Total Executions: 0 @if ($backup->save_s3)
S3 Storage: Enabled @endif @endif
@endif @empty
No scheduled backups configured.
@endforelse @endif
@if ($type === 'service-database' && $selectedBackup)
@endif