remove old init script on server if it is renamed
This commit is contained in:
@@ -127,6 +127,7 @@ class General extends Component
|
|||||||
$initScripts = collect($this->database->init_scripts ?? []);
|
$initScripts = collect($this->database->init_scripts ?? []);
|
||||||
|
|
||||||
$existingScript = $initScripts->firstWhere('filename', $script['filename']);
|
$existingScript = $initScripts->firstWhere('filename', $script['filename']);
|
||||||
|
$oldScript = $initScripts->firstWhere('index', $script['index']);
|
||||||
|
|
||||||
if ($existingScript && $existingScript['index'] !== $script['index']) {
|
if ($existingScript && $existingScript['index'] !== $script['index']) {
|
||||||
$this->dispatch('error', 'A script with this filename already exists.');
|
$this->dispatch('error', 'A script with this filename already exists.');
|
||||||
@@ -134,6 +135,21 @@ class General extends Component
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$container_name = $this->database->uuid;
|
||||||
|
$configuration_dir = database_configuration_dir().'/'.$container_name;
|
||||||
|
|
||||||
|
if ($oldScript && $oldScript['filename'] !== $script['filename']) {
|
||||||
|
$old_file_path = "$configuration_dir/docker-entrypoint-initdb.d/{$oldScript['filename']}";
|
||||||
|
$delete_command = "rm -f $old_file_path";
|
||||||
|
try {
|
||||||
|
instant_remote_process([$delete_command], $this->server);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$this->dispatch('error', 'Failed to remove old init script from server: '.$e->getMessage());
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$index = $initScripts->search(function ($item) use ($script) {
|
$index = $initScripts->search(function ($item) use ($script) {
|
||||||
return $item['index'] === $script['index'];
|
return $item['index'] === $script['index'];
|
||||||
});
|
});
|
||||||
@@ -153,7 +169,7 @@ class General extends Component
|
|||||||
->all();
|
->all();
|
||||||
|
|
||||||
$this->database->save();
|
$this->database->save();
|
||||||
$this->dispatch('success', 'Init script saved.');
|
$this->dispatch('success', 'Init script saved and updated.');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete_init_script($script)
|
public function delete_init_script($script)
|
||||||
|
|||||||
Reference in New Issue
Block a user