DocumentDB - Jatuhkan Database

Anda dapat melepaskan database atau database dari portal serta dari kode dengan menggunakan .Net SDK. Di sini, kita akan membahas, secara bertahap, cara menjatuhkan database di DocumentDB.

Step 1- Buka akun DocumentDB Anda di portal Azure. Untuk tujuan demo, saya telah menambahkan dua database lagi seperti yang terlihat pada tangkapan layar berikut.

Step 2- Untuk menjatuhkan database apa pun, Anda perlu mengklik database itu. Mari pilih tempdb, Anda akan melihat halaman berikut, pilih opsi 'Hapus Database'.

Step 3 - Ini akan menampilkan pesan konfirmasi, sekarang klik tombol 'Ya'.

Anda akan melihat bahwa tempdb tidak lagi tersedia di dasbor Anda.

Anda juga dapat menghapus database dari kode Anda menggunakan .Net SDK. Untuk melakukan berikut ini adalah langkah-langkahnya.

Step 1 - Mari kita hapus database dengan menentukan ID dari database yang ingin kita hapus, tetapi kita membutuhkan SelfLink-nya.

Step 2 - Kami memanggil CreateDatabaseQuery seperti sebelumnya, tetapi kali ini kami sebenarnya menyediakan kueri untuk mengembalikan hanya satu database dengan ID tempdb1.

private async static Task DeleteDatabase(DocumentClient client) {
   Console.WriteLine("******** Delete Database ********");
   Database database = client
      .CreateDatabaseQuery("SELECT * FROM c WHERE c.id = 'tempdb1'")
      .AsEnumerable()
      .First();
   await client.DeleteDatabaseAsync(database.SelfLink);
}

Step 3- Kali ini, kita bisa memanggil AsEnumerable daripada ToList () karena sebenarnya kita tidak membutuhkan objek list. Hanya mengharapkan hasil, memanggil AsEnumerable sudah cukup sehingga kita bisa mendapatkan objek database pertama yang dikembalikan oleh kueri dengan First (). Ini adalah objek database untuk tempdb1 dan memiliki SelfLink yang dapat kita gunakan untuk memanggil DeleteDatabaseAsync yang menghapus database.

Step 4 - Anda juga perlu memanggil tugas DeleteDatabase dari tugas CreateDocumentClient setelah DocumentClient dibuat.

Step 5 - Untuk melihat daftar database setelah menghapus database yang ditentukan, mari kita panggil metode GetDatabases lagi.

using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
   //await CreateDatabase(client);
	
   GetDatabases(client);
   await DeleteDatabase(client);
   GetDatabases(client); 
}

Berikut adalah file Program.cs selengkapnya sejauh ini.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;

namespace DocumentDBDemo {

   class Program {
	
      private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
		
      private const string AuthorizationKey = "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/
         StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";
			
      static void Main(string[] args) {
         try {
            CreateDocumentClient().Wait();
         } catch (Exception e) {
            Exception baseException = e.GetBaseException();
            Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
         }
         Console.ReadKey();
      }
		
      private static async Task CreateDocumentClient() {
         // Create a new instance of the DocumentClient
         using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
            //await CreateDatabase(client);
            GetDatabases(client);
            await DeleteDatabase(client);
            GetDatabases(client);
         }
      }
		
      private async static Task CreateDatabase(DocumentClient client) {
         Console.WriteLine();
         Console.WriteLine("******** Create Database *******");
			
         var databaseDefinition = new Database { Id = "mynewdb" };
         var result = await client.CreateDatabaseAsync(databaseDefinition);
         var database = result.Resource;
			
         Console.WriteLine(" Database Id: {0}; Rid: {1}",
            database.Id, database.ResourceId);
         Console.WriteLine("******** Database Created *******");
      }
		
      private static void GetDatabases(DocumentClient client) {
         Console.WriteLine();
         Console.WriteLine();
         Console.WriteLine("******** Get Databases List ********");
			
         var databases = client.CreateDatabaseQuery().ToList();
			
         foreach (var database in databases) {
            Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id,
               database.ResourceId);
         }
			
         Console.WriteLine();
         Console.WriteLine("Total databases: {0}", databases.Count);
      }
		
      private async static Task DeleteDatabase(DocumentClient client) {
         Console.WriteLine();
         Console.WriteLine("******** Delete Database ********");
			
         Database database = client
            .CreateDatabaseQuery("SELECT * FROM c WHERE c.id = 'tempdb1'")
            .AsEnumerable()
            .First();
         await client.DeleteDatabaseAsync(database.SelfLink);
      }
		
   }
}

Ketika kode di atas dikompilasi dan dijalankan, Anda akan menerima output berikut yang berisi ID Database dan Sumber Daya dari tiga database dan jumlah total database.

******** Get Databases List ******** 
 Database Id: myfirstdb; Rid: Ic8LAA== 
 Database Id: mynewdb; Rid: ltpJAA== 
 Database Id: tempdb1; Rid: 06JjAA==
 
Total databases: 3  

******** Delete Database ******** 
  
******** Get Databases List ******** 
 Database Id: myfirstdb; Rid: Ic8LAA== 
 Database Id: mynewdb; Rid: ltpJAA==
 
Total databases: 2

Setelah menghapus database, Anda juga akan melihat di bagian akhir bahwa hanya dua database yang tersisa di akun DocumentDB.