refactor: improve migration command and enhance application model with global scope and status checks

This commit is contained in:
Andras Bacsai
2024-12-11 17:18:32 +01:00
parent 528bfce832
commit 7be3c6f2b7
2 changed files with 21 additions and 14 deletions

View File

@@ -14,7 +14,7 @@ class Migration extends Command
{
if (config('constants.migration.is_migration_enabled')) {
$this->info('Migration is enabled on this server.');
$this->call('migrate --force --isolated');
$this->call('migrate', ['--force' => true, '--isolated' => true]);
exit(0);
} else {
$this->info('Migration is disabled on this server.');

View File

@@ -115,6 +115,12 @@ class Application extends BaseModel
protected static function booted()
{
static::addGlobalScope('withRelations', function ($builder) {
$builder->withCount([
'additional_servers',
'additional_networks',
]);
});
static::saving(function ($application) {
$payload = [];
if ($application->isDirty('fqdn')) {
@@ -551,11 +557,13 @@ class Application extends BaseModel
{
return Attribute::make(
get: function () {
if ($this->additional_servers->count() === 0) {
return $this->destination->server->isFunctional();
} else {
if (! $this->relationLoaded('additional_servers') || $this->additional_servers->count() === 0) {
return $this->destination?->server?->isFunctional() ?? false;
}
$additional_servers_status = $this->additional_servers->pluck('pivot.status');
$main_server_status = $this->destination->server->isFunctional();
$main_server_status = $this->destination?->server?->isFunctional() ?? false;
foreach ($additional_servers_status as $status) {
$server_status = str($status)->before(':')->value();
if ($server_status !== 'running') {
@@ -565,7 +573,6 @@ class Application extends BaseModel
return $main_server_status;
}
}
);
}