CaveAVins Tutoriel 3 : Migration d’une base de données SQL Server vers SQL Azure
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:
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:
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
Développer un projet aujourd’hui : comment faire, par où commencer ?
Stockage des données avec Sql Server, EF Code First et Azure
Ajout des notifications sur les vins en promotions
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 )
- CaveAVins Tutoriel 4 : Hébergement du service WCF Data Services dans Azure
Pré-requis:
- Il vous faut un compte Azure que vous obtiendrez gratuitement pour une période de 30 jours: Azure Pass
- 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 :
Une fois le fichier décompressé, lancez l’application.
Sélectionnez “Analyser et migrer base de données SQL”
Entrez le serveur SQL utilisé pour le stockage des données et cliquez sur “Connecter”.
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”
Choisissez de scripter tous les objets : c’est le choix par défaut.
Voici un dernier rappel des éléments qui seront générés.
L’outil s’occupe de générer les scripts adéquats.
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.
Sélectionnez “Base de données” ainsi que votre abonnement, puis cliquez sur “Créer”.
Sélectionnez la zone géographique la plus proche : “West Europe”.
Choisissez votre identifiant et mot de passe.
Ajoutez une règle autorisant n’importe à quelle machine – y compris Azure – à accéder à la base.
Votre serveur Sql Azure est créé et apparait maintenant dans le portail.
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 :
Cliquez sur “Connecter”.
Puis sur “Créer la base”.
Entrez le nom de la base de données que vous souhaitez créer.
Cliquez sur “Suivant”.
La migration est terminée. Retournez sur le portail Azure, vous verrez apparaitre votre base de données.
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.
Cliquez sur “Afficher”.
Copiez la chaine de connexion ADO.Net et ajoutez-la dans une nouvelle section “connectionStrings” dans le web.config de notre service, comme ceci:
<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:
Exécutons notre service et consultons la liste des vins à l’adresse: https://localhost:5972/CaveAVinsDataService.svc/Wines
Passons maintenant à la migration du service WCF Data Services. C’est ce que nous verrons dans le tutoriel suivant.