WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Industrialisation des développements web : cas du langage php

( Télécharger le fichier original )
par Jean-Luc NTA à NWAMEKANG
Institut Supérieur de Technologie et du Design Industrielle - European Master of Computer Science 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

La majorité des projets de développements informatiques traitent, stockent et restituent des données et ces données sont pour la plus part organisées dans des bases de données. Nous avons précédemment présentés les mécanismes utiles pour le partage de codes sources et la construction automatique du projet. Le projet sera construit entièrement si les mises à jour apportées aux données sont parallèlement intégrées.

Ainsi pour la migration de nos bases de données, nous utiliserons un outil intégré à Phing qui facilite la migration et l'évolution des bases de données d'un projet : DbDeploy. C'est un outil de gestion des changements d'une base de données. C'est pour les développeurs ou DBA qui veulent faire évoluer leur schéma de base de données - ou refactoriser leur base de données - d'une manière simple, maîtrisé, flexible et fréquents.

III.1 Problématique

Le problème récurrent avec le développement de bases de données, c'est qu'à un moment donné, on devra mettre à jour la base de données existante et préserver son contenu. Dans les environnements de développement, il est souvent possible (et même souhaitable) de balayer la base de données et de la reconstruire à partir de zéro aussi souvent que le code est reconstruit.

Nous avons constaté que l'un des moyens les plus faciles pour permettre aux gens de changer la base de données consiste à utiliser un contrôleur de version scripts SQL delta. Nous avons également jugé utile de faire en sorte que les scripts utilisés pour construire des environnements de développement soient exactement les mêmes utilisés lors de la production. Maintenir et faire usage de ces deltas peut rapidement devenir une surcharge importante - dbdeploy vise à combler cette lacune.

III.2 Règles d'utilisation de dbdeploy

Lors de la création d'un fichier delta il sera important de suivre les conventions suivantes :

1. Se rassurer que toutes les modifications de base de données sont écrites comme des scripts delta qui seront récupérées par dbdeploy.

2. Respecter les conventions de nom pour les scripts delta. Les noms des scripts doivent commencés par un nombre qui indique l'ordre dans lequel ils seront exécutés. Il est possible d'ajouter un commentaire au nom du fichier pour décrire ce que fait le fichier (exemple : 1Cree_table_client.sql),

3. On peut optionnellement ajouter une section undo à nos scripts. Tout d'abord, il faut écrire le script qui va exécuter l'action à faire; Une fois que le script de toutes les actions à faire est rédigé, inclure dans une nouvelle ligne le label --//@UNDO. Inclure les tâches d'annulation après le label.

DbDeploy s'exécute en effectuant des vérifications pour voir si un script delta particulier a été exécuté sur une base de données particulière. Pour ce faire, il utilise le nom du script delta plus le nom de l'ensemble du delta (qui sera «All», sauf indication contraire) et le compare avec le contenu de la table de version du schéma. Si un script delta qui a déjà été appliqué à une base de données est modifié par la suite, cette modification ultérieure ne sera pas appliquée à la base de données.

Tout cela fonctionne très bien tant que vous n'avez pas besoin de corriger un bugg sérieux dans un script. Il ya deux façons de réduire ce risque :

· Toujours effectuer une génération locale avant les vérifications, de cette façon le problème est constaté et peut être fixé avant d'être versionner.

· Utilisez l'intégration continue - si votre serveur de build s'interrompt, le référentiel de code source ne sera pas étiqueté jusqu'à ce que le problème soit résolu.

III.3 DbDeployTask

Dans le fichier de configuration de Phing (le build.xml), la tâche que nous utiliserons est : DbDeployTask. Lors de son exécution cette tâche crée un fichier .sql pour effectuer les révisions de base de données, basée sur les conventions dbdeploy qui sont centrées autour d'une table changelog de la base de données. la table changelog doit se présentée ainsi:

CREATE TABLE changelog (

change_number BIGINT NOT NULL,

delta_set VARCHAR(10) NOT NULL,

start_dt TIMESTAMP NOT NULL,

complete_dt TIMESTAMP NULL,

applied_by VARCHAR(100) NOT NULL,

description VARCHAR(500) NOT NULL

)

· Exemple d'application

<taskdef name="dbdeploy" classname="phing.tasks.ext.dbdeploy.DbDeployTask"/>

<dbdeploy url="sqlite:${project.basedir}/data/db.sqlite"

userid="admin"

password="ringo"

dir="${project.basedir}/data/dbdeploy/deltas"/>

L'exemple ci-dessus utilise une base de données SQLite et les scripts delta se trouvant dans le répertoire dbdeploy/deltas de la racine du répertoire du projet.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Ceux qui rêvent de jour ont conscience de bien des choses qui échappent à ceux qui rêvent de nuit"   Edgar Allan Poe