@@ -136,6 +136,99 @@ function Test-ManagedDatabaseMove
136
136
}
137
137
}
138
138
139
+ function Test-CrossSubscriptionManagedDatabaseMove
140
+ {
141
+ $sourceRGName = " source-rg-name"
142
+ $targetRGName = " target-rg-name"
143
+ $sourceInstanceName = " source-mi-name"
144
+ $targetInstanceName = " target-mi-name"
145
+ $targetSubscriptionId = " 0000-0000-0000-0000"
146
+ $managedDatabaseName = " database-name"
147
+
148
+ try
149
+ {
150
+ Move-AzSqlInstanceDatabase `
151
+ - ResourceGroupName $sourceRGName `
152
+ - InstanceName $sourceInstanceName `
153
+ - Name $managedDatabaseName `
154
+ - TargetSubscriptionId $targetSubscriptionId `
155
+ - TargetInstanceName $targetInstanceName `
156
+ - TargetResourceGroupName $targetRGName
157
+
158
+ $moveOperation = Get-AzSqlInstanceDatabaseMoveOperation `
159
+ - ResourceGroupName $sourceRGName `
160
+ - InstanceName $sourceInstanceName `
161
+ - Name $managedDatabaseName `
162
+ - OnlyLatestPerDatabase
163
+
164
+ Assert-NotNull $moveOperation
165
+ Assert-AreEqual $moveOperation.TargetManagedInstanceName $targetInstanceName
166
+ Assert-AreEqual $moveOperation.SourceManagedInstanceName $sourceInstanceName
167
+ Assert-AreEqual $moveOperation.SourceDatabaseName $managedDatabaseName
168
+ Assert-AreEqual $moveOperation.OperationMode " Move"
169
+
170
+ while ($moveOperation.isCancellable -eq $false ) {
171
+ Start-TestSleep - Seconds 30
172
+
173
+ $moveOperation = Get-AzSqlInstanceDatabaseMoveOperation `
174
+ - ResourceGroupName $sourceRGName `
175
+ - InstanceName $sourceInstanceName `
176
+ - Name $managedDatabaseName `
177
+ - OnlyLatestPerDatabase
178
+ }
179
+
180
+ Stop-AzSqlInstanceDatabaseMove `
181
+ - ResourceGroupName $sourceRGName `
182
+ - InstanceName $sourceInstanceName `
183
+ - Name $managedDatabaseName `
184
+ - TargetSubscriptionId $targetSubscriptionId `
185
+ - TargetInstanceName $targetInstanceName `
186
+ - TargetResourceGroupName $targetRGName
187
+
188
+ Wait-ForOperationToSucceed `
189
+ - rgName $sourceRGName `
190
+ - InstanceName $sourceInstanceName `
191
+ - databaseName $managedDatabaseName
192
+
193
+ Move-AzSqlInstanceDatabase `
194
+ - ResourceGroupName $sourceRGName `
195
+ - InstanceName $sourceInstanceName `
196
+ - Name $managedDatabaseName `
197
+ - TargetSubscriptionId $targetSubscriptionId `
198
+ - TargetInstanceName $targetInstanceName `
199
+ - TargetResourceGroupName $targetRGName
200
+
201
+ Wait-ForOperationToSucceed `
202
+ - rgName $sourceRGName `
203
+ - InstanceName $sourceInstanceName `
204
+ - databaseName $managedDatabaseName
205
+
206
+ Complete-AzSqlInstanceDatabaseMove `
207
+ - ResourceGroupName $sourceRGName `
208
+ - InstanceName $sourceInstanceName `
209
+ - Name $managedDatabaseName `
210
+ - TargetSubscriptionId $targetSubscriptionId `
211
+ - TargetInstanceName $targetInstanceName `
212
+ - TargetResourceGroupName $targetRGName `
213
+ - Force
214
+
215
+ Wait-ForOperationToSucceed `
216
+ - rgName $sourceRGName `
217
+ - InstanceName $sourceInstanceName `
218
+ - databaseName $managedDatabaseName
219
+
220
+ Assert-Throws {
221
+ Get-AzSqlInstanceDatabase `
222
+ - ResourceGroupName $sourceRGName `
223
+ - InstanceName $sourceInstanceName `
224
+ - Name $managedDatabaseName
225
+ }
226
+ }
227
+ finally
228
+ {
229
+ }
230
+ }
231
+
139
232
function Test-ManagedDatabaseMovePiping
140
233
{
141
234
$sourceRg = Create- ResourceGroupForTest
@@ -478,6 +571,99 @@ function Test-ManagedDatabaseCopy
478
571
}
479
572
}
480
573
574
+ function Test-CrossSubscriptionManagedDatabaseCopy
575
+ {
576
+ $sourceRGName = " source-rg-name"
577
+ $targetRGName = " target-rg-name"
578
+ $sourceInstanceName = " source-mi-name"
579
+ $targetInstanceName = " target-mi-name"
580
+ $targetSubscriptionId = " 0000-0000-0000-0000"
581
+ $managedDatabaseName = " database-name"
582
+
583
+ try
584
+ {
585
+ Copy-AzSqlInstanceDatabase `
586
+ - ResourceGroupName $sourceRGName `
587
+ - InstanceName $sourceInstanceName `
588
+ - Name $managedDatabaseName `
589
+ - TargetSubscriptionId $targetSubscriptionId `
590
+ - TargetInstanceName $targetInstanceName `
591
+ - TargetResourceGroupName $targetRGName
592
+
593
+ $CopyOperation = Get-AzSqlInstanceDatabaseCopyOperation `
594
+ - ResourceGroupName $sourceRGName `
595
+ - InstanceName $sourceInstanceName `
596
+ - Name $managedDatabaseName `
597
+ - OnlyLatestPerDatabase
598
+
599
+ Assert-NotNull $CopyOperation
600
+ Assert-AreEqual $CopyOperation.TargetManagedInstanceName $targetInstanceName
601
+ Assert-AreEqual $CopyOperation.SourceManagedInstanceName $sourceInstanceName
602
+ Assert-AreEqual $CopyOperation.SourceDatabaseName $managedDatabaseName
603
+ Assert-AreEqual $CopyOperation.OperationMode " Copy"
604
+
605
+ while ($CopyOperation.isCancellable -eq $false ) {
606
+ Start-TestSleep - Seconds 30
607
+
608
+ $CopyOperation = Get-AzSqlInstanceDatabaseCopyOperation `
609
+ - ResourceGroupName $sourceRGName `
610
+ - InstanceName $sourceInstanceName `
611
+ - Name $managedDatabaseName `
612
+ - OnlyLatestPerDatabase
613
+ }
614
+
615
+ Stop-AzSqlInstanceDatabaseCopy `
616
+ - ResourceGroupName $sourceRGName `
617
+ - InstanceName $sourceInstanceName `
618
+ - Name $managedDatabaseName `
619
+ - TargetSubscriptionId $targetSubscriptionId `
620
+ - TargetInstanceName $targetInstanceName `
621
+ - TargetResourceGroupName $targetRGName
622
+
623
+ Wait-ForCopyOperationToSucceed `
624
+ - rgName $sourceRGName `
625
+ - instanceName $sourceInstanceName `
626
+ - databaseName $managedDatabaseName
627
+
628
+ Copy-AzSqlInstanceDatabase `
629
+ - ResourceGroupName $sourceRGName `
630
+ - InstanceName $sourceInstanceName `
631
+ - Name $managedDatabaseName `
632
+ - TargetSubscriptionId $targetSubscriptionId `
633
+ - TargetInstanceName $targetInstanceName `
634
+ - TargetResourceGroupName $targetRGName
635
+
636
+ Wait-ForCopyOperationToSucceed `
637
+ - rgName $sourceRGName `
638
+ - instanceName $sourceInstanceName `
639
+ - databaseName $managedDatabaseName
640
+
641
+ Complete-AzSqlInstanceDatabaseCopy `
642
+ - ResourceGroupName $sourceRGName `
643
+ - InstanceName $sourceInstanceName `
644
+ - Name $managedDatabaseName `
645
+ - TargetSubscriptionId $targetSubscriptionId `
646
+ - TargetInstanceName $targetInstanceName `
647
+ - TargetResourceGroupName $targetRGName
648
+
649
+ Wait-ForCopyOperationToSucceed `
650
+ - rgName $sourceRGName `
651
+ - instanceName $sourceInstanceName `
652
+ - databaseName $managedDatabaseName
653
+
654
+ $dbOnSource = Get-AzSqlInstanceDatabase `
655
+ - ResourceGroupName $sourceRGName `
656
+ - InstanceName $sourceInstanceName `
657
+ - Name $managedDatabaseName
658
+
659
+ Assert-NotNull $dbOnSource
660
+
661
+ }
662
+ finally
663
+ {
664
+ }
665
+ }
666
+
481
667
function Test-ManagedDatabaseCopyPiping
482
668
{
483
669
$sourceRg = Create- ResourceGroupForTest
0 commit comments