DocumentDB - Supprimer les bases de données

Vous pouvez supprimer une ou plusieurs bases de données à partir du portail ainsi qu'à partir du code à l'aide du SDK .Net. Ici, nous allons discuter, par étapes, comment supprimer une base de données dans DocumentDB.

Step 1- Accédez à votre compte DocumentDB sur le portail Azure. À des fins de démonstration, j'ai ajouté deux autres bases de données, comme le montre la capture d'écran suivante.

Step 2- Pour supprimer une base de données, vous devez cliquer sur cette base de données. Choisissons tempdb, vous verrez la page suivante, sélectionnez l'option 'Supprimer la base de données'.

Step 3 - Il affichera le message de confirmation, cliquez maintenant sur le bouton «Oui».

Vous verrez que tempdb n'est plus disponible dans votre tableau de bord.

Vous pouvez également supprimer des bases de données de votre code à l'aide du SDK .Net. Voici les étapes à suivre.

Step 1 - Supprimons la base de données en spécifiant l'ID de la base de données que nous voulons supprimer, mais nous avons besoin de son SelfLink.

Step 2 - Nous appelons CreateDatabaseQuery comme auparavant, mais cette fois, nous fournissons en fait une requête pour ne renvoyer qu'une seule base de données avec l'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- Cette fois, nous pouvons appeler AsEnumerable au lieu de ToList () car nous n'avons pas réellement besoin d'un objet de liste. En attendant seulement le résultat, appeler AsEnumerable est suffisant pour que nous puissions obtenir le premier objet de base de données retourné par la requête avec First (). Il s'agit de l'objet de base de données pour tempdb1 et il a un SelfLink que nous pouvons utiliser pour appeler DeleteDatabaseAsync qui supprime la base de données.

Step 4 - Vous devez également appeler la tâche DeleteDatabase à partir de la tâche CreateDocumentClient après l'instanciation de DocumentClient.

Step 5 - Pour afficher la liste des bases de données après avoir supprimé la base de données spécifiée, appelons à nouveau la méthode GetDatabases.

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

Voici le fichier Program.cs complet à ce jour.

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);
      }
		
   }
}

Lorsque le code ci-dessus est compilé et exécuté, vous recevrez la sortie suivante qui contient les ID de base de données et de ressources des trois bases de données et le nombre total de bases de données.

******** 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

Après avoir supprimé la base de données, vous verrez également à la fin qu'il ne reste que deux bases de données dans le compte DocumentDB.