Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function DBUpdate_after {
- if (!(Get-Module -ListAvailable -Name SqlServer)) {
- Install-Module -Name SqlServer -AllowClobber
- }
- $DB_Server = $config.DB_SERVER
- $DB_Name = $config.DB_NAME
- $SPO_DB_USER = $config.SPO_DB_USER
- $SPO_DB_PWD = $config.SPO_DB_PWD
- $scriptsDir = $config.scriptsDir
- # Récupérer version actuelle DB
- $test = Invoke-Sqlcmd -Query "SELECT versioncp FROM INCOMPOS WHERE idcompos = 'SPO';" -Username sage -Password sage -ServerInstance $DB_Server -Database $DB_Name -OutputSqlErrors $true -ErrorAction SilentlyContinue
- if (!$test -or $null -eq $test.versioncp) {
- Write-Host "Impossible de déterminer le numéro de version actuel de la base de données $DB_SERVER, echec de la mise à jour de la base de données";
- return;
- }
- [version]$versionAct = $test.versioncp
- Write-Host "La version de la base de donnée a été déterminée : $versionAct"
- Start-Sleep -s 2
- # Recuperer les scripts sql
- $files_before = Get-ChildItem -Path $scriptsDir\before_update_*.sql |
- Where-Object {
- [version]$version = $_.Name -replace '.*_|\.sql'
- $version -gt $versionAct
- }
- $files_after = Get-ChildItem -Path $scriptsDir\update_*.sql |
- Where-Object {
- [version]$version = $_.Name -replace '.*_|\.sql'
- $version -gt $versionAct
- }
- if ($files_before) {
- foreach ($file in $files_before) {
- Write-Host "Préparation pour la mise a jour de la base vers la version $versionTraitee en cours"
- Invoke-SqlCmd -ServerInstance $DB_Server -Database $DB_Name -Username $SPO_DB_USER -Password $SPO_DB_PWD -InputFile $file -OutputSqlErrors $true -AbortOnError
- }
- }
- if (!$files_after) {
- Write-Host "Aucun script de mise à jour de la base de données $DB_SERVER n'est disponible";
- return;
- }
- # Executer les scripts : STOP si erreur
- foreach ($file in $files_after) {
- [version]$versionTraitee = $file.Name -replace '.*_|\.sql'
- Write-Host "Mise a jour de la base vers la version $versionTraitee en cours"
- Invoke-SqlCmd -ServerInstance $DB_Server -Database $DB_Name -Username $SPO_DB_USER -Password $SPO_DB_PWD -InputFile $file -OutputSqlErrors $true -AbortOnError
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement