diff --git a/CHANGELOG.md b/CHANGELOG.md index fd8a267a73..9b44b3634b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - BREAKING CHANGE: `Set-SqlDscDatabase` - Removed parameter `OwnerName` [issue #2177](https://github.com/dsccommunity/SqlServerDsc/issues/2177). Use the new command `Set-SqlDscDatabaseOwner` to change database ownership instead. +- BREAKING CHANGE: `Set-SqlDscDatabaseProperty` + - Removed parameters `AzureEdition` and `AzureServiceObjective`. Azure SQL Database + service tier and SLO changes should be managed using `Set-AzSqlDatabase` from the + Azure PowerShell module instead. See [issue #2177](https://github.com/dsccommunity/SqlServerDsc/issues/2177). ### Added diff --git a/source/Public/Set-SqlDscDatabaseProperty.ps1 b/source/Public/Set-SqlDscDatabaseProperty.ps1 index 242ac5cc79..fb73d001d6 100644 --- a/source/Public/Set-SqlDscDatabaseProperty.ps1 +++ b/source/Public/Set-SqlDscDatabaseProperty.ps1 @@ -77,12 +77,6 @@ .PARAMETER AutoUpdateStatisticsEnabled Specifies whether statistics are automatically updated when they are out-of-date. - .PARAMETER AzureEdition - Specifies the Azure SQL Database edition (e.g., Basic/Standard/Premium/GeneralPurpose/BusinessCritical). - - .PARAMETER AzureServiceObjective - Specifies the Azure SQL Database service objective (e.g., S3, P1, GP_Gen5_4). - .PARAMETER BrokerEnabled Specifies whether Service Broker is enabled for the database. @@ -321,6 +315,10 @@ There are some database properties that require method calls instead of direct property assignment and will be supported through separate commands, e.g. `Set-SqlDscDatabaseDefaultFileGroup`. + + Azure SQL Database service tier and service objective changes should be managed + using Azure management cmdlets (e.g., `Set-AzSqlDatabase` with `-Edition` and + `-RequestedServiceObjectiveName` parameters) rather than through SMO. #> function Set-SqlDscDatabaseProperty { @@ -572,10 +570,6 @@ function Set-SqlDscDatabaseProperty $MaxSizeInBytes, # String Properties - [Parameter()] - [System.String] - $AzureServiceObjective, - [Parameter()] [ValidateNotNullOrEmpty()] [System.String] @@ -629,10 +623,6 @@ function Set-SqlDscDatabaseProperty [System.String] $RemoteDatabaseName, - [Parameter()] - [System.String] - $AzureEdition, - # Enum Properties [Parameter()] [Microsoft.SqlServer.Management.Smo.RetentionPeriodUnits] diff --git a/tests/Unit/Public/Set-SqlDscDatabaseProperty.Tests.ps1 b/tests/Unit/Public/Set-SqlDscDatabaseProperty.Tests.ps1 index 5004995bb3..9fdaf0c598 100644 --- a/tests/Unit/Public/Set-SqlDscDatabaseProperty.Tests.ps1 +++ b/tests/Unit/Public/Set-SqlDscDatabaseProperty.Tests.ps1 @@ -366,7 +366,7 @@ Describe 'Set-SqlDscDatabaseProperty' -Tag 'Public' { It 'Should have the correct parameters in parameter set ServerObjectSet' -ForEach @( @{ ExpectedParameterSetName = 'ServerObjectSet' - ExpectedParameters = '-ServerObject -Name [-Refresh] [-AcceleratedRecoveryEnabled ] [-AnsiNullDefault ] [-AnsiNullsEnabled ] [-AnsiPaddingEnabled ] [-AnsiWarningsEnabled ] [-ArithmeticAbortEnabled ] [-AutoClose ] [-AutoCreateIncrementalStatisticsEnabled ] [-AutoCreateStatisticsEnabled ] [-AutoShrink ] [-AutoUpdateStatisticsAsync ] [-AutoUpdateStatisticsEnabled ] [-BrokerEnabled ] [-ChangeTrackingAutoCleanUp ] [-ChangeTrackingEnabled ] [-CloseCursorsOnCommitEnabled ] [-ConcatenateNullYieldsNull ] [-DatabaseOwnershipChaining ] [-DataRetentionEnabled ] [-DateCorrelationOptimization ] [-EncryptionEnabled ] [-HonorBrokerPriority ] [-IsFullTextEnabled ] [-IsLedger ] [-IsParameterizationForced ] [-IsReadCommittedSnapshotOn ] [-IsSqlDw ] [-IsVarDecimalStorageFormatEnabled ] [-LegacyCardinalityEstimation ] [-LegacyCardinalityEstimationForSecondary ] [-LocalCursorsDefault ] [-NestedTriggersEnabled ] [-NumericRoundAbortEnabled ] [-ParameterSniffing ] [-ParameterSniffingForSecondary ] [-QueryOptimizerHotfixes ] [-QueryOptimizerHotfixesForSecondary ] [-QuotedIdentifiersEnabled ] [-ReadOnly ] [-RecursiveTriggersEnabled ] [-RemoteDataArchiveEnabled ] [-RemoteDataArchiveUseFederatedServiceAccount ] [-TemporalHistoryRetentionEnabled ] [-TransformNoiseWords ] [-Trustworthy ] [-ChangeTrackingRetentionPeriod ] [-DefaultFullTextLanguage ] [-DefaultLanguage ] [-MaxDop ] [-MaxDopForSecondary ] [-MirroringRedoQueueMaxSize ] [-MirroringTimeout ] [-TargetRecoveryTime ] [-TwoDigitYearCutoff ] [-MaxSizeInBytes ] [-AzureServiceObjective ] [-Collation ] [-DatabaseSnapshotBaseName ] [-DefaultSchema ] [-FilestreamDirectoryName ] [-MirroringPartner ] [-MirroringPartnerInstance ] [-MirroringWitness ] [-PersistentVersionStoreFileGroup ] [-PrimaryFilePath ] [-RemoteDataArchiveCredential ] [-RemoteDataArchiveEndpoint ] [-RemoteDataArchiveLinkedServer ] [-RemoteDatabaseName ] [-AzureEdition ] [-ChangeTrackingRetentionPeriodUnits ] [-CompatibilityLevel ] [-ContainmentType ] [-DelayedDurability ] [-FilestreamNonTransactedAccess ] [-MirroringSafetyLevel ] [-PageVerify ] [-RecoveryModel ] [-UserAccess ] [-Force] [-PassThru] [-WhatIf] [-Confirm] []' + ExpectedParameters = '-ServerObject -Name [-Refresh] [-AcceleratedRecoveryEnabled ] [-AnsiNullDefault ] [-AnsiNullsEnabled ] [-AnsiPaddingEnabled ] [-AnsiWarningsEnabled ] [-ArithmeticAbortEnabled ] [-AutoClose ] [-AutoCreateIncrementalStatisticsEnabled ] [-AutoCreateStatisticsEnabled ] [-AutoShrink ] [-AutoUpdateStatisticsAsync ] [-AutoUpdateStatisticsEnabled ] [-BrokerEnabled ] [-ChangeTrackingAutoCleanUp ] [-ChangeTrackingEnabled ] [-CloseCursorsOnCommitEnabled ] [-ConcatenateNullYieldsNull ] [-DatabaseOwnershipChaining ] [-DataRetentionEnabled ] [-DateCorrelationOptimization ] [-EncryptionEnabled ] [-HonorBrokerPriority ] [-IsFullTextEnabled ] [-IsLedger ] [-IsParameterizationForced ] [-IsReadCommittedSnapshotOn ] [-IsSqlDw ] [-IsVarDecimalStorageFormatEnabled ] [-LegacyCardinalityEstimation ] [-LegacyCardinalityEstimationForSecondary ] [-LocalCursorsDefault ] [-NestedTriggersEnabled ] [-NumericRoundAbortEnabled ] [-ParameterSniffing ] [-ParameterSniffingForSecondary ] [-QueryOptimizerHotfixes ] [-QueryOptimizerHotfixesForSecondary ] [-QuotedIdentifiersEnabled ] [-ReadOnly ] [-RecursiveTriggersEnabled ] [-RemoteDataArchiveEnabled ] [-RemoteDataArchiveUseFederatedServiceAccount ] [-TemporalHistoryRetentionEnabled ] [-TransformNoiseWords ] [-Trustworthy ] [-ChangeTrackingRetentionPeriod ] [-DefaultFullTextLanguage ] [-DefaultLanguage ] [-MaxDop ] [-MaxDopForSecondary ] [-MirroringRedoQueueMaxSize ] [-MirroringTimeout ] [-TargetRecoveryTime ] [-TwoDigitYearCutoff ] [-MaxSizeInBytes ] [-Collation ] [-DatabaseSnapshotBaseName ] [-DefaultSchema ] [-FilestreamDirectoryName ] [-MirroringPartner ] [-MirroringPartnerInstance ] [-MirroringWitness ] [-PersistentVersionStoreFileGroup ] [-PrimaryFilePath ] [-RemoteDataArchiveCredential ] [-RemoteDataArchiveEndpoint ] [-RemoteDataArchiveLinkedServer ] [-RemoteDatabaseName ] [-ChangeTrackingRetentionPeriodUnits ] [-CompatibilityLevel ] [-ContainmentType ] [-DelayedDurability ] [-FilestreamNonTransactedAccess ] [-MirroringSafetyLevel ] [-PageVerify ] [-RecoveryModel ] [-UserAccess ] [-Force] [-PassThru] [-WhatIf] [-Confirm] []' } ) { $result = (Get-Command -Name 'Set-SqlDscDatabaseProperty').ParameterSets | @@ -383,7 +383,7 @@ Describe 'Set-SqlDscDatabaseProperty' -Tag 'Public' { It 'Should have the correct parameters in parameter set DatabaseObjectSet' -ForEach @( @{ ExpectedParameterSetName = 'DatabaseObjectSet' - ExpectedParameters = '-DatabaseObject [-AcceleratedRecoveryEnabled ] [-AnsiNullDefault ] [-AnsiNullsEnabled ] [-AnsiPaddingEnabled ] [-AnsiWarningsEnabled ] [-ArithmeticAbortEnabled ] [-AutoClose ] [-AutoCreateIncrementalStatisticsEnabled ] [-AutoCreateStatisticsEnabled ] [-AutoShrink ] [-AutoUpdateStatisticsAsync ] [-AutoUpdateStatisticsEnabled ] [-BrokerEnabled ] [-ChangeTrackingAutoCleanUp ] [-ChangeTrackingEnabled ] [-CloseCursorsOnCommitEnabled ] [-ConcatenateNullYieldsNull ] [-DatabaseOwnershipChaining ] [-DataRetentionEnabled ] [-DateCorrelationOptimization ] [-EncryptionEnabled ] [-HonorBrokerPriority ] [-IsFullTextEnabled ] [-IsLedger ] [-IsParameterizationForced ] [-IsReadCommittedSnapshotOn ] [-IsSqlDw ] [-IsVarDecimalStorageFormatEnabled ] [-LegacyCardinalityEstimation ] [-LegacyCardinalityEstimationForSecondary ] [-LocalCursorsDefault ] [-NestedTriggersEnabled ] [-NumericRoundAbortEnabled ] [-ParameterSniffing ] [-ParameterSniffingForSecondary ] [-QueryOptimizerHotfixes ] [-QueryOptimizerHotfixesForSecondary ] [-QuotedIdentifiersEnabled ] [-ReadOnly ] [-RecursiveTriggersEnabled ] [-RemoteDataArchiveEnabled ] [-RemoteDataArchiveUseFederatedServiceAccount ] [-TemporalHistoryRetentionEnabled ] [-TransformNoiseWords ] [-Trustworthy ] [-ChangeTrackingRetentionPeriod ] [-DefaultFullTextLanguage ] [-DefaultLanguage ] [-MaxDop ] [-MaxDopForSecondary ] [-MirroringRedoQueueMaxSize ] [-MirroringTimeout ] [-TargetRecoveryTime ] [-TwoDigitYearCutoff ] [-MaxSizeInBytes ] [-AzureServiceObjective ] [-Collation ] [-DatabaseSnapshotBaseName ] [-DefaultSchema ] [-FilestreamDirectoryName ] [-MirroringPartner ] [-MirroringPartnerInstance ] [-MirroringWitness ] [-PersistentVersionStoreFileGroup ] [-PrimaryFilePath ] [-RemoteDataArchiveCredential ] [-RemoteDataArchiveEndpoint ] [-RemoteDataArchiveLinkedServer ] [-RemoteDatabaseName ] [-AzureEdition ] [-ChangeTrackingRetentionPeriodUnits ] [-CompatibilityLevel ] [-ContainmentType ] [-DelayedDurability ] [-FilestreamNonTransactedAccess ] [-MirroringSafetyLevel ] [-PageVerify ] [-RecoveryModel ] [-UserAccess ] [-Force] [-PassThru] [-WhatIf] [-Confirm] []' + ExpectedParameters = '-DatabaseObject [-AcceleratedRecoveryEnabled ] [-AnsiNullDefault ] [-AnsiNullsEnabled ] [-AnsiPaddingEnabled ] [-AnsiWarningsEnabled ] [-ArithmeticAbortEnabled ] [-AutoClose ] [-AutoCreateIncrementalStatisticsEnabled ] [-AutoCreateStatisticsEnabled ] [-AutoShrink ] [-AutoUpdateStatisticsAsync ] [-AutoUpdateStatisticsEnabled ] [-BrokerEnabled ] [-ChangeTrackingAutoCleanUp ] [-ChangeTrackingEnabled ] [-CloseCursorsOnCommitEnabled ] [-ConcatenateNullYieldsNull ] [-DatabaseOwnershipChaining ] [-DataRetentionEnabled ] [-DateCorrelationOptimization ] [-EncryptionEnabled ] [-HonorBrokerPriority ] [-IsFullTextEnabled ] [-IsLedger ] [-IsParameterizationForced ] [-IsReadCommittedSnapshotOn ] [-IsSqlDw ] [-IsVarDecimalStorageFormatEnabled ] [-LegacyCardinalityEstimation ] [-LegacyCardinalityEstimationForSecondary ] [-LocalCursorsDefault ] [-NestedTriggersEnabled ] [-NumericRoundAbortEnabled ] [-ParameterSniffing ] [-ParameterSniffingForSecondary ] [-QueryOptimizerHotfixes ] [-QueryOptimizerHotfixesForSecondary ] [-QuotedIdentifiersEnabled ] [-ReadOnly ] [-RecursiveTriggersEnabled ] [-RemoteDataArchiveEnabled ] [-RemoteDataArchiveUseFederatedServiceAccount ] [-TemporalHistoryRetentionEnabled ] [-TransformNoiseWords ] [-Trustworthy ] [-ChangeTrackingRetentionPeriod ] [-DefaultFullTextLanguage ] [-DefaultLanguage ] [-MaxDop ] [-MaxDopForSecondary ] [-MirroringRedoQueueMaxSize ] [-MirroringTimeout ] [-TargetRecoveryTime ] [-TwoDigitYearCutoff ] [-MaxSizeInBytes ] [-Collation ] [-DatabaseSnapshotBaseName ] [-DefaultSchema ] [-FilestreamDirectoryName ] [-MirroringPartner ] [-MirroringPartnerInstance ] [-MirroringWitness ] [-PersistentVersionStoreFileGroup ] [-PrimaryFilePath ] [-RemoteDataArchiveCredential ] [-RemoteDataArchiveEndpoint ] [-RemoteDataArchiveLinkedServer ] [-RemoteDatabaseName ] [-ChangeTrackingRetentionPeriodUnits ] [-CompatibilityLevel ] [-ContainmentType ] [-DelayedDurability ] [-FilestreamNonTransactedAccess ] [-MirroringSafetyLevel ] [-PageVerify ] [-RecoveryModel ] [-UserAccess ] [-Force] [-PassThru] [-WhatIf] [-Confirm] []' } ) { $result = (Get-Command -Name 'Set-SqlDscDatabaseProperty').ParameterSets |