Summary

Fixes #7528 — /claim #7528

When deploying a Docker Compose file via GitHub App (dockercompose buildpack), database services are not detected and ServiceDatabase records are not created — meaning automated backups are unavailable. This works correctly for “Empty Docker Compose” and one-click services.

Root Cause

  • Empty Docker ComposeService model → serviceParser() → calls isDatabaseImage() → creates ServiceDatabase
  • GitHub App dockercomposeApplication model → applicationParser() → calls isDatabaseImage() but never creates ServiceDatabase

ServiceDatabase had a non-nullable service_id FK, making it impossible to associate with an Application.

Changes

  1. Migration — Add nullable application_id to service_databases, make service_id nullable
  2. ServiceDatabase model — New application() relation + helper methods for polymorphic parent access
  3. Application model — New databases() relation
  4. parsers.php / shared.php — Detect DB images in applicationParser() and create ServiceDatabase records
  5. DatabaseBackupJob — Use polymorphic getters instead of direct service-> access
  6. ScheduledDatabaseBackup — Handle both service and application paths
  7. DeleteResourceJob — Clean up ServiceDatabase on Application deletion
  8. Routes + Livewire + Blade — New backup management UI for Application resources

Testing

  • Database images are detected via isDatabaseImage() (same logic as service parser)
  • Backup scheduling uses existing DatabaseBackupJob infrastructure
  • Backward compatible: existing Service-based backups unaffected

Claim

Total prize pool $100
Total paid $0
Status Pending
Submitted March 08, 2026
Last updated March 08, 2026

Contributors

MI

mickaelfree

@mickaelfree

100%

Sponsors

IL

Ilias Ism

@me

$100