fix(core): v1 parser versions trying to access application_id, while it is resourceable_id

fix(db): remove wrongly created, empty environmentvariables
This commit is contained in:
Andras Bacsai
2025-01-22 10:21:41 +01:00
parent 185ddd48f2
commit 085103708c
2 changed files with 33 additions and 7 deletions

View File

@@ -2645,7 +2645,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
if ($value?->startsWith('$')) { if ($value?->startsWith('$')) {
$foundEnv = EnvironmentVariable::where([ $foundEnv = EnvironmentVariable::where([
'key' => $key, 'key' => $key,
'application_id' => $resource->id, 'resourceable_type' => get_class($resource),
'resourceable_id' => $resource->id,
'is_preview' => false, 'is_preview' => false,
])->first(); ])->first();
$value = replaceVariables($value); $value = replaceVariables($value);
@@ -2653,7 +2654,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
if ($value->startsWith('SERVICE_')) { if ($value->startsWith('SERVICE_')) {
$foundEnv = EnvironmentVariable::where([ $foundEnv = EnvironmentVariable::where([
'key' => $key, 'key' => $key,
'application_id' => $resource->id, 'resourceable_type' => get_class($resource),
'resourceable_id' => $resource->id,
])->first(); ])->first();
['command' => $command, 'forService' => $forService, 'generatedValue' => $generatedValue, 'port' => $port] = parseEnvVariable($value); ['command' => $command, 'forService' => $forService, 'generatedValue' => $generatedValue, 'port' => $port] = parseEnvVariable($value);
if (! is_null($command)) { if (! is_null($command)) {
@@ -2676,7 +2678,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
'key' => $key, 'key' => $key,
'value' => $fqdn, 'value' => $fqdn,
'is_build_time' => false, 'is_build_time' => false,
'application_id' => $resource->id, 'resourceable_type' => get_class($resource),
'resourceable_id' => $resource->id,
'is_preview' => false, 'is_preview' => false,
]); ]);
} }
@@ -2687,7 +2690,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
'key' => $key, 'key' => $key,
'value' => $generatedValue, 'value' => $generatedValue,
'is_build_time' => false, 'is_build_time' => false,
'application_id' => $resource->id, 'resourceable_type' => get_class($resource),
'resourceable_id' => $resource->id,
'is_preview' => false, 'is_preview' => false,
]); ]);
} }
@@ -2712,7 +2716,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
} }
$foundEnv = EnvironmentVariable::where([ $foundEnv = EnvironmentVariable::where([
'key' => $key, 'key' => $key,
'application_id' => $resource->id, 'resourceable_type' => get_class($resource),
'resourceable_id' => $resource->id,
'is_preview' => false, 'is_preview' => false,
])->first(); ])->first();
if ($foundEnv) { if ($foundEnv) {
@@ -2722,7 +2727,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
if ($foundEnv) { if ($foundEnv) {
$foundEnv->update([ $foundEnv->update([
'key' => $key, 'key' => $key,
'application_id' => $resource->id, 'resourceable_type' => get_class($resource),
'resourceable_id' => $resource->id,
'is_build_time' => $isBuildTime, 'is_build_time' => $isBuildTime,
'value' => $defaultValue, 'value' => $defaultValue,
]); ]);
@@ -2731,7 +2737,8 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal
'key' => $key, 'key' => $key,
'value' => $defaultValue, 'value' => $defaultValue,
'is_build_time' => $isBuildTime, 'is_build_time' => $isBuildTime,
'application_id' => $resource->id, 'resourceable_type' => get_class($resource),
'resourceable_id' => $resource->id,
'is_preview' => false, 'is_preview' => false,
]); ]);
} }

View File

@@ -0,0 +1,19 @@
<?php
use App\Models\EnvironmentVariable;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Log;
return new class extends Migration
{
public function up(): void
{
try {
EnvironmentVariable::whereNull('resourceable_id')->each(function (EnvironmentVariable $environmentVariable) {
$environmentVariable->delete();
});
} catch (\Exception $e) {
Log::error('Failed to delete wrongly created environment variables: '.$e->getMessage());
}
}
};