17
17
Include this parameter to avoid checking entitlements. Entitlements are needed if the .bacpac file is to be used for cloud deployments.
18
18
. Parameter includeDacPac
19
19
Use this parameter to export databases as dacpac
20
+ . Parameter dacPacOnly
21
+ Use this parameter to export databases as dacpac only (skip Bacpac)
20
22
. Parameter commandTimeout
21
23
Timeout in seconds for the export command for every database. Default is 1 hour (3600).
22
24
. Parameter diagnostics
@@ -43,6 +45,7 @@ function Export-BcContainerDatabasesAsBacpac {
43
45
[string []] $tenant = @ (" default" ),
44
46
[int ] $commandTimeout = 3600 ,
45
47
[switch ] $includeDacPac ,
48
+ [switch ] $dacPacOnly ,
46
49
[switch ] $diagnostics ,
47
50
[switch ] $doNotCheckEntitlements ,
48
51
[string []] $additionalArguments = @ ()
64
67
}
65
68
$containerBacpacFolder = Get-BcContainerPath - containerName $containerName - path $bacpacFolder - throw
66
69
67
- Invoke-ScriptInBcContainer - containerName $containerName - ScriptBlock { Param ([PSCredential ]$sqlCredential , $bacpacFolder , $tenant , $commandTimeout , $includeDacPac , $diagnostics , $additionalArguments , $doNotCheckEntitlements )
70
+ Invoke-ScriptInBcContainer - containerName $containerName - ScriptBlock { Param ([PSCredential ]$sqlCredential , $bacpacFolder , $tenant , $commandTimeout , $includeDacPac , $dacPacOnly , $ diagnostics, $additionalArguments , $doNotCheckEntitlements )
68
71
69
72
function CmdDo {
70
73
Param (
@@ -388,40 +391,43 @@ try {
388
391
[Parameter (Mandatory = $false )]
389
392
[int ] $commandTimeout = 3600 ,
390
393
[switch ] $includeDacPac ,
394
+ [switch ] $dacPacOnly ,
391
395
[switch ] $diagnostics ,
392
396
[Parameter (Mandatory = $false )]
393
397
[string []] $additionalArguments = @ ()
394
398
)
395
399
396
- Write-Host " Exporting as BacPac..."
400
+ if (! $dacPacOnly ) {
401
+ Write-Host " Exporting as BacPac..."
397
402
398
- $arguments = @ (
399
- (' /Action:Export' ),
400
- (' /TargetFile:"' + $targetFile + ' "' ),
401
- (' /SourceDatabaseName:"' + $databaseName + ' "' ),
402
- (' /SourceServerName:"' + $databaseServer + ' "' ),
403
- (' /OverwriteFiles:True' )
404
- (" /p:CommandTimeout=$commandTimeout " )
405
- )
406
-
407
- if ($diagnostics ) {
408
- $arguments += @ (' /Diagnostics:True' )
409
- }
410
-
411
- if ($sqlCredential ) {
412
- $arguments += @ (
413
- (' /SourceUser:"' + $sqlCredential.UserName + ' "' ),
414
- (' /SourcePassword:"' + ([System.Runtime.InteropServices.Marshal ]::PtrToStringAuto([System.Runtime.InteropServices.Marshal ]::SecureStringToBSTR($sqlCredential.Password )))+ ' "' )
403
+ $arguments = @ (
404
+ (' /Action:Export' ),
405
+ (' /TargetFile:"' + $targetFile + ' "' ),
406
+ (' /SourceDatabaseName:"' + $databaseName + ' "' ),
407
+ (' /SourceServerName:"' + $databaseServer + ' "' ),
408
+ (' /OverwriteFiles:True' )
409
+ (" /p:CommandTimeout=$commandTimeout " )
415
410
)
411
+
412
+ if ($diagnostics ) {
413
+ $arguments += @ (' /Diagnostics:True' )
414
+ }
415
+
416
+ if ($sqlCredential ) {
417
+ $arguments += @ (
418
+ (' /SourceUser:"' + $sqlCredential.UserName + ' "' ),
419
+ (' /SourcePassword:"' + ([System.Runtime.InteropServices.Marshal ]::PtrToStringAuto([System.Runtime.InteropServices.Marshal ]::SecureStringToBSTR($sqlCredential.Password )))+ ' "' )
420
+ )
421
+ }
422
+
423
+ if ($additionalArguments ) {
424
+ $arguments += $additionalArguments
425
+ }
426
+
427
+ CmdDo - command $sqlpackageExe - arguments ($arguments -join ' ' )
416
428
}
417
-
418
- if ($additionalArguments ) {
419
- $arguments += $additionalArguments
420
- }
421
-
422
- CmdDo - command $sqlpackageExe - arguments ($arguments -join ' ' )
423
429
424
- if ($includeDacPac ) {
430
+ if ($includeDacPac -or $dacPacOnly ) {
425
431
Write-Host " Extracting as DacPac..."
426
432
$arguments = @ (
427
433
(' /Action:Extract' ),
@@ -481,7 +487,7 @@ try {
481
487
Remove-WindowsUsers - DatabaseServer $databaseServerInstance - DatabaseName $tempAppDatabaseName - sqlCredential $sqlCredential
482
488
Remove-ApplicationRoles - DatabaseServer $databaseServerInstance - DatabaseName $tempAppDatabaseName - sqlCredential $sqlCredential
483
489
Remove-NavDatabaseSystemTableData - DatabaseServer $databaseServerInstance - DatabaseName $tempAppDatabaseName - sqlCredential $sqlCredential
484
- Do - Export - DatabaseServer $databaseServerInstance - DatabaseName $tempAppDatabaseName - sqlCredential $sqlCredential - targetFile $appBacpacFileName - commandTimeout $commandTimeout - includeDacPac:$includeDacPac - diagnostics:$diagnostics - additionalArguments $additionalArguments
490
+ Do - Export - DatabaseServer $databaseServerInstance - DatabaseName $tempAppDatabaseName - sqlCredential $sqlCredential - targetFile $appBacpacFileName - commandTimeout $commandTimeout - includeDacPac:$includeDacPac - dacPacOnly: $dacPacOnly - diagnostics:$diagnostics - additionalArguments $additionalArguments
485
491
486
492
$tenant | ForEach-Object {
487
493
$sourceDatabase = $_
@@ -499,7 +505,7 @@ try {
499
505
Remove-WindowsUsers - DatabaseServer $databaseServerInstance - DatabaseName $tempTenantDatabaseName - sqlCredential $sqlCredential
500
506
Remove-ApplicationRoles - DatabaseServer $databaseServerInstance - DatabaseName $tempTenantDatabaseName - sqlCredential $sqlCredential
501
507
Remove-NavTenantDatabaseUserData - DatabaseServer $databaseServerInstance - DatabaseName $tempTenantDatabaseName - sqlCredential $sqlCredential
502
- Do - Export - DatabaseServer $databaseServerInstance - DatabaseName $tempTenantDatabaseName - sqlCredential $sqlCredential - targetFile $tenantBacpacFileName - commandTimeout $commandTimeout - includeDacPac:$includeDacPac - diagnostics:$diagnostics - additionalArguments $additionalArguments
508
+ Do - Export - DatabaseServer $databaseServerInstance - DatabaseName $tempTenantDatabaseName - sqlCredential $sqlCredential - targetFile $tenantBacpacFileName - commandTimeout $commandTimeout - includeDacPac:$includeDacPac - dacPacOnly: $dacPacOnly - diagnostics:$diagnostics - additionalArguments $additionalArguments
503
509
}
504
510
} else {
505
511
$tempDatabaseName = " temp$DatabaseName "
@@ -512,9 +518,9 @@ try {
512
518
Remove-ApplicationRoles - DatabaseServer $databaseServerInstance - DatabaseName $tempDatabaseName - sqlCredential $sqlCredential
513
519
Remove-NavDatabaseSystemTableData - DatabaseServer $databaseServerInstance - DatabaseName $tempDatabaseName - sqlCredential $sqlCredential
514
520
Remove-NavTenantDatabaseUserData - DatabaseServer $databaseServerInstance - DatabaseName $tempDatabaseName - sqlCredential $sqlCredential
515
- Do - Export - DatabaseServer $databaseServerInstance - DatabaseName $tempDatabaseName - sqlCredential $sqlCredential - targetFile $bacpacFileName - commandTimeout $commandTimeout - includeDacPac:$includeDacPac - diagnostics:$diagnostics - additionalArguments $additionalArguments
521
+ Do - Export - DatabaseServer $databaseServerInstance - DatabaseName $tempDatabaseName - sqlCredential $sqlCredential - targetFile $bacpacFileName - commandTimeout $commandTimeout - includeDacPac:$includeDacPac - dacPacOnly: $dacPacOnly - diagnostics:$diagnostics - additionalArguments $additionalArguments
516
522
}
517
- } - ArgumentList $sqlCredential , $containerBacpacFolder , $tenant , $commandTimeout , $includeDacPac , $diagnostics , $additionalArguments , $doNotCheckEntitlements
523
+ } - ArgumentList $sqlCredential , $containerBacpacFolder , $tenant , $commandTimeout , $includeDacPac , $dacPacOnly , $ diagnostics, $additionalArguments , $doNotCheckEntitlements
518
524
}
519
525
catch {
520
526
TrackException - telemetryScope $telemetryScope - errorRecord $_
0 commit comments