diff --git a/app/Jobs/DatabaseBackupJob.php b/app/Jobs/DatabaseBackupJob.php index da660c449..804233de9 100644 --- a/app/Jobs/DatabaseBackupJob.php +++ b/app/Jobs/DatabaseBackupJob.php @@ -2,6 +2,7 @@ namespace App\Jobs; +use App\Actions\Database\StopDatabase; use App\Models\S3Storage; use App\Models\ScheduledDatabaseBackup; use App\Models\ScheduledDatabaseBackupExecution; @@ -22,6 +23,7 @@ use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\Middleware\WithoutOverlapping; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Str; +use Throwable; class DatabaseBackupJob implements ShouldQueue, ShouldBeEncrypted { @@ -64,6 +66,14 @@ class DatabaseBackupJob implements ShouldQueue, ShouldBeEncrypted public function handle(): void { try { + // Check if team is exists + if (is_null($this->team)) { + $this->backup->update(['status' => 'failed']); + StopDatabase::run($this->database); + $this->database->delete(); + return; + } + $status = Str::of(data_get($this->database, 'status')); if (!$status->startsWith('running') && $this->database->id !== 0) { ray('database not running'); diff --git a/app/Models/StandaloneMongodb.php b/app/Models/StandaloneMongodb.php index 06a6cb537..6e3b9e583 100644 --- a/app/Models/StandaloneMongodb.php +++ b/app/Models/StandaloneMongodb.php @@ -32,11 +32,11 @@ class StandaloneMongodb extends BaseModel ]); }); static::deleting(function ($database) { - $database->scheduledBackups()->delete(); $storages = $database->persistentStorages()->get(); foreach ($storages as $storage) { instant_remote_process(["docker volume rm -f $storage->name"], $database->destination->server, false); } + $database->scheduledBackups()->delete(); $database->persistentStorages()->delete(); $database->environment_variables()->delete(); }); diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 9b7af1c02..0eb280c08 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -45,7 +45,7 @@ services: - /data/coolify/_volumes/redis/:/data # - coolify-redis-data-dev:/data vite: - image: node:19 + image: node:20 working_dir: /var/www/html ports: - "${VITE_PORT:-5173}:${VITE_PORT:-5173}" diff --git a/resources/views/livewire/team/delete.blade.php b/resources/views/livewire/team/delete.blade.php index 18e3889a5..4e4bd5977 100644 --- a/resources/views/livewire/team/delete.blade.php +++ b/resources/views/livewire/team/delete.blade.php @@ -11,8 +11,7 @@
This is the default team. You can't delete it.
@elseif(auth()->user()->teams()->get()->count() === 1)
You can't delete your last team.
- @elseif(currentTeam()->subscription && - currentTeam()->subscription?->lemon_status !== 'cancelled') + @elseif(currentTeam()->subscription && currentTeam()->subscription?->lemon_status !== 'cancelled')
Please cancel your subscription before delete this team (Manage My Subscription).
@else @if (currentTeam()->isEmpty()) @@ -23,30 +22,38 @@ @else
You need to delete the following resources to be able to delete the team:
-

Projects:

- -

Servers:

- -

Private Keys:

- -

Sources:

- + @if (currentTeam()->projects()->count() > 0) +

Projects:

+ + @endif + @if (currentTeam()->servers()->count() > 0) +

Servers:

+ + @endif + @if (currentTeam()->privateKeys()->count() > 0) +

Private Keys:

+ + @endif + @if (currentTeam()->sources()->count() > 0) +

Sources:

+ + @endif @endif @endif