Перед копированием файлов сервера выполняется обновление БД

This commit is contained in:
Антон Чичков 2024-07-19 12:11:57 +10:00
parent fc4545c026
commit 31ee06efa8

View File

@ -11,7 +11,7 @@
param ([string]$version, [switch]$server, [switch]$pollservice, [switch]$force, [switch] $update)
Set-StrictMode -Version 1
$ErrorActionPreference = "Stop"
###################################
# Вспомогательные функции
@ -218,8 +218,52 @@ New-Item -ItemType Directory -Path $configDir -Force
if ($server)
{
wget $serverUrl -O Server.zip
Expand-Archive -LiteralPath 'Server.zip' -DestinationPath $lersDir -Force
Remove-Item -Path 'Server.zip' -Force
if ($update)
{
Write-Host "Обновляется база данных..."
# В режиме обновления распакуем сервер во временную папку
# и попытаемся обновить БД. Если не вышло обновиться, завершаем работу.
$lersTempPath = [System.IO.Path]::GetTempPath()
$lersTempPath = Join-Path -Path $lersTempPath -ChildPath "lers"
if (Test-Path -LiteralPath $lersTempPath)
{
Remove-Item -Path $lersTempPath -Recurse -Force
}
Expand-Archive -LiteralPath 'Server.zip' -DestinationPath $lersTempPath -Force
Remove-Item -Path 'Server.zip' -Force
# Обновляем существующую БД
dotnet "$lersTempPath/Server/Lers.Server.dll" cli db-update
if ($?)
{
# Перемещаем распакованные файлы в финальную папку.
# Предварительно очищаем сервер, чтобы убрать все ставшие ненужными сборки.
Remove-Item -Path "$lersDir/Server" -Recurse -Force
Remove-Item -Path "$lersDir/Database" -Recurse -Force
Remove-Item -Path "$lersDir/Server.Bootstrapper" -Recurse -Force
Remove-Item -Path "$lersDir/Updater" -Recurse -Force
Get-ChildItem -Path $lersTempPath | Move-Item -Destination $lersDir -Force
}
else
{
Write-Error "Не удалось обновить базу данных. Обновление прекращено."
exit 3;
}
}
else
{
Expand-Archive -LiteralPath 'Server.zip' -DestinationPath $lersDir -Force
Remove-Item -Path 'Server.zip' -Force
}
}
if ($pollservice)
@ -275,14 +319,9 @@ chown -R $lersUser $dataDir
chown -R $lersUser $configDir
if ($update)
if (-not $update)
{
# Обновляем существующую БД
dotnet $serverExecutable cli db-update
}
else
{
# Создаём службы systemd
# Создаём или службы systemd
if ($server)
{