kreta/Tools/Install/InstallOrUpdateDevSql.ps1
2024-03-13 00:33:46 +01:00

67 lines
No EOL
2.1 KiB
PowerShell

Import-Module SQLPS -DisableNameChecking
$commonModule = Join-Path $PSScriptRoot "Common.psm1"
Import-Module $commonModule
#region Configuration
$sqlInstaceName = 'kretalocal'
$databaseName = 'Kreta'
$userName = 'kreta'
$password = 'Porcica1.'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$fileToRestore = Join-Path $PSScriptRoot "..\..\Kreta.DataAccess.Migrations\InitialBackup\Kreta_dev_init.bak"
$backupPath = "c:\SqlBackupDev"
#endregion
#region Private functions
function Copy-Database($targetDatabaseFile, $backupPath)
{
$file = Get-Item $targetDatabaseFile
$newLocation = Join-Path $backupPath $file.Name
Copy-Item $targetDatabaseFile $backupPath -Force
return $newLocation = Join-Path $backupPath $file.Name
}
#endregion
#region Main
try
{
Write-Host "---------------------Checking Administrator credentials--------------------------"
$checkCredentials = CheckCredentials
if($checkCredentials -eq $false)
{
exit
}
Write-Host "---------------------Start Logging-----------------------------------------------"
StartLogging
Write-Host "---------------------Backup Previous Database------------------------------------"
Backup-Database $sqlInstaceName $databaseName $userName $securePassword $backupPath
Write-Host "---------------------Copy database backup----------------------------------------"
$fileToRestore = Copy-Database $fileToRestore $backupPath
Write-Host "---------------------Drop Previous Database--------------------------------------"
Drop-Database $sqlInstaceName $databaseName $userName $securePassword
Write-Host "---------------------Restore New Database----------------------------------------"
Restore-Database $sqlInstaceName $databaseName $userName $securePassword $fileToRestore
Write-Host "---------------------Reset Environment-------------------------------------------"
ResetEnvironment
}
finally
{
Write-Host "---------------------Stop Logging------------------------------------------------"
StopLogging
}
#endregion