onQueue(deployment_queue()); } public function handle(StandaloneRedis|StandalonePostgresql|StandaloneMongodb|StandaloneMysql|StandaloneMariadb|StandaloneKeydb|StandaloneDragonfly|StandaloneClickhouse $database): Activity|string { $server = $database->destination->server; if (! $server->isFunctional()) { return 'Server is not functional'; } $activity = activity() ->withProperties([ 'server_uuid' => $server->uuid, 'type' => ActivityTypes::INLINE->value, 'type_uuid' => $database->uuid, 'status' => ProcessStatus::QUEUED->value, 'team_id' => $server->team_id, 'operation' => 'database-start', ]) ->performedOn($database) ->event(ActivityTypes::INLINE->value) ->log('[]'); if ($activity === null) { return 'Database start could not be queued because activity logging is disabled.'; } DatabaseStartJob::dispatch( $database->getMorphClass(), (int) $database->getKey(), (int) $database->team()->id, (int) $activity->getKey(), auth()->id(), ); if ($database->is_public && $database->public_port) { StartDatabaseProxy::dispatch($database); } return $activity; } }