Ce tutoriel montre comment migrer une base de données SQL Server existante vers SQL Azure.
Il a été écrit dans le cadre d’une suite d’articles mais la procédure est exactement la même pour n’importe quelle base SQL Server et vous pouvez donc la suivre indépendamment des exemples proposés.

Dans notre projet démarré from scratch, nous sommes arrivés au stade suivant:

image

Pour pouvoir accéder à nos données depuis un téléphone, il nous faut les héberger sur un serveur accessible depuis l’extérieur.
Dans notre cas, nous décidons d’utiliser la plateforme Azure, les motivations de ce choix sont détaillées dans l’article  Architecture et découpage du projet .
Nous verrons qu’il est très simple de migrer un projet existant vers Azure. Dans notre cas, nous migrerons 2 éléments différents:

  • la base de données Sql Server
  • le service WCF Data Services qui publie les données en OData

Dans ce tutoriel, nous commencerons par migrer la base de données Sql Server vers Sql Azure.
Si ceci est votre première expérience de la plateforme, nous créerons également le serveur Sql Azure en pas à pas.
Nous modifierons la chaine de connexion du service WCF Data Services : le service fonctionnera toujours, mais en adressant cette fois Sql Azure.
Nous obtiendrons l’architecture suivante à la fin de ce tutoriel:

image


Puis nous migrerons le service WCF Data Services vers la plateforme Azure sous la forme d’un web role dans le tutoriel suivant.

Rappel des épisodes précédents

  1. Développer un projet aujourd’hui : comment faire, par où commencer ?
  2. Architecture et découpage du projet
  3. Stockage des données avec Sql Server, EF Code First et Azure
  4. La publication des données
  5. La migration dans Azure 
  6. L’application Windows Phone basique
  7. Ajout de la fonction d’aide à l’achat
  8. Ajout des notifications sur les vins en promotions
  9. L’application Silverlight

Tutoriels:

- CaveAVins Tutoriel 1 : L’accès aux données avec Sql Server et EF Code First
- CaveAVins Tutoriel 2 : La publication des données en OData avec WCF Data Services
- CaveAVins Tutoriel 3 : Migration d’une base SQL Server vers SQL Azure (vous êtes ici Star)
- CaveAVins Tutoriel 4 : Hébergement du service WCF Data Services dans Azure

 

Pré-requis:

  1. Il vous faut un compte Azure que vous obtiendrez gratuitement pour une période de 30 jours: Azure Pass
  2. Nous partons de la solution construite depuis les 2 précédents tutoriels, que vous pouvons télécharger ici:

 

Migration de la base de données Sql Server vers Sql Azure

Un outil de migration téléchargeable sur codeplex va vous permettre d’effectuer cette opération en quelques clics :

SQL Azure Migration Wizard

Une fois le fichier décompressé, lancez l’application.

image

Sélectionnez “Analyser et migrer base de données SQL”

image

Entrez le serveur SQL utilisé pour le stockage des données et cliquez sur “Connecter”.

image

Choisissez CaveAVins.Db.CaveAVinsContext. C’est le nom de la base de données qui a été générée par Entity Framework Code First.

Puis cliquez sur “Suivant”

image

Choisissez de scripter tous les objets : c’est le choix par défaut.

image

Voici un dernier rappel des éléments qui seront générés.

image

L’outil s’occupe de générer les scripts adéquats.

image

A présent, ces scripts vont être utilisés avec votre compte Azure pour générer la base de données Sql Azure correspondante.

Pour renseigner ces informations, vous aurez besoin d’un serveur Sql Azure sur lequel créer votre base de données.
Si vous n’avez pas encore créé de serveur, réalisez les étapes du chapitre suivant.

Création du serveur Sql Azure

Si c’est la première fois que vous utilisez Sql Azure, il vous faudra suivre les étapes suivantes.

Accédez au portail Azure et connectez-vous avec le live Id que vous avez utilisé pour créer votre compte Azure.

image

Sélectionnez “Base de données” ainsi que votre abonnement, puis cliquez sur “Créer”.

image

Sélectionnez la zone géographique la plus proche : “West Europe”.

image

Choisissez votre identifiant et mot de passe.

image

Ajoutez une règle autorisant n’importe à quelle machine – y compris Azure – à accéder à la base.

image

Votre serveur Sql Azure est créé et apparait maintenant dans le portail.

image

Reprise de la migration

Vous pouvez repasser sur l’assistant de migration et compléter les champs avec les informations correspondantes apparaissant sur le portail :

image

Cliquez sur “Connecter”.

image

Puis sur “Créer la base”.

image

Entrez le nom de la base de données que vous souhaitez créer.

image

Cliquez sur “Suivant”.

image

image

La migration est terminée. Retournez sur le portail Azure, vous verrez apparaitre votre base de données.

image

Mise à jour de la chaine de connexion dans le service WCF Data Services

Pour que notre service adresse la base de données SQL Azure, il suffit de modifier la chaine de connexion, que vous trouverez sur la droite du portail.

image

Cliquez sur “Afficher”.

image

Copiez la chaine de connexion ADO.Net et ajoutez-la dans une nouvelle section “connectionStrings” dans le web.config de notre service, comme ceci:

image

  <connectionStrings>
    <add name="CaveAVinsContext" 
         connectionString="Server=tcp:oy7122pvo6.database.windows.net,1433;Database=CaveAVins.Db.Azure;User ID=stephe@oy7122pvo6;Password=myPassword;Trusted_Connection=False;Encrypt=True;"
         providerName="System.Data.SqlClient"/>
  </connectionStrings>

Le nom de la chaine de connexion est important, puisqu’il doit correspondre au nom du contexte EF Code First associé à notre base de données, dans notre cas : CaveAVinsContext.

Relancez le service : il accède maintenant à notre base de données Sql Azure !

Test du service

Pour le prouver, ajoutons une ligne dans la table Wines, par l’intermédiaire de l’outil d’administration en ligne de Windows Azure:

image

image

Exécutons notre service et consultons la liste des vins à l’adresse: http://localhost:5972/CaveAVinsDataService.svc/Wines

image

Passons maintenant à la migration du service WCF Data Services. C’est ce que nous verrons dans le tutoriel suivant.