init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
87
Tools/Install/CreateDatabaseAndRunMigration.ps1
Normal file
87
Tools/Install/CreateDatabaseAndRunMigration.ps1
Normal file
|
@ -0,0 +1,87 @@
|
|||
Param(
|
||||
[string]$connectionString,
|
||||
[string]$targetDatabaseFile
|
||||
)
|
||||
|
||||
#Import-Module SQLPS -DisableNameChecking
|
||||
$sqlPsModule = Join-Path $PSScriptRoot "\SQLPS\SQLPS.PSD1"
|
||||
Import-Module $sqlPsModule
|
||||
|
||||
$commonModule = Join-Path $PSScriptRoot "Common.psm1"
|
||||
Import-Module $commonModule
|
||||
|
||||
#region Parameters
|
||||
|
||||
if([string]::IsNullOrWhiteSpace($connectionString) -or [string]::IsNullOrWhiteSpace($targetDatabaseFile))
|
||||
{
|
||||
Write-Error ".\CreateDatabaseAndRunMigration.ps1 'connectionString' 'targetDatabaseFile'"
|
||||
return
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Configuration
|
||||
|
||||
$connectionValues = New-Object System.Data.SqlClient.SqlConnectionStringBuilder -argumentlist $connectionString
|
||||
|
||||
$sqlInstaceName = $connectionValues["Data Source"]
|
||||
$databaseName = $connectionValues["Initial Catalog"]
|
||||
$userName = $connectionValues["User ID"]
|
||||
$password = $connectionValues["Password"]
|
||||
|
||||
#$connectionString = "Data Source=kretalocal;User ID=kreta;Password=Porcica1.;Initial Catalog=KretaTestDevMigration;Connection Timeout=3000;"
|
||||
#$targetDatabaseFile = "c:\Temp\Kreta_prod_ini_empty.bak"
|
||||
|
||||
#example: .\CreateDatabaseAndRunMigration.ps1 'Data Source=kretalocal;User ID=kreta;Password=Porcica1.;Initial Catalog=KretaTestDevMigration;Connection Timeout=3000;' 'c:\Temp\Kreta_dev_init.bak'
|
||||
#example: .\CreateDatabaseAndRunMigration.ps1 'Data Source=kretalocal;User ID=kreta;Password=Porcica1.;Initial Catalog=KretaTestProdMigration;Connection Timeout=3000;' 'c:\Temp\Kreta_prod_init_empty.bak'
|
||||
|
||||
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
|
||||
|
||||
$fileToRestore = $targetDatabaseFile
|
||||
$backupPath = "c:\SqlBackupDev"
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private functions
|
||||
|
||||
function Run-Migrator($connectionString)
|
||||
{
|
||||
$solutionDir = Join-Path $psscriptroot "..\..\"
|
||||
|
||||
Write-Host "Solution Directory is" $psscriptroot
|
||||
|
||||
$migrator = Join-Path $solutionDir "\packages\Ekreta.Core.FluentMigrator.1.2.56051\tools\Migrate.exe"
|
||||
$target = Join-Path $solutionDir "\Kreta.DataAccess.Migrations\bin\Kreta.DataAccess.Migrations.dll"
|
||||
|
||||
& "$migrator" /connection "$connectionString" /db "SqlServer" /target "$target" /timeout 600
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Main
|
||||
|
||||
try
|
||||
{
|
||||
Write-Host "---------------------Start Logging-----------------------------------------------"
|
||||
StartLogging
|
||||
|
||||
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 "---------------------Run migration-----------------------------------------------"
|
||||
Run-Migrator $connectionString
|
||||
|
||||
Write-Host "---------------------Reset Environment-------------------------------------------"
|
||||
ResetEnvironment
|
||||
}
|
||||
finally
|
||||
{
|
||||
Write-Host "---------------------Stop Logging------------------------------------------------"
|
||||
StopLogging
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
Loading…
Add table
Add a link
Reference in a new issue