
Aujourd’hui je souhaitais mettre en avant une fonctionnalité récemment découverte du framework CakePHP. Dans plusieurs applications j’ai trouvé des fichiers sql dans le dossier « /config/sql« , mais ce n’est que maintenant que je viens de me rendre compte de l’existence d’un shell intégré à CakePHP permettant de gérer les dump, installation et mises à jour de la base de données : c’est notamment pratique dès lors que l’on versionne ces fichiers et qu’on les distribue.
Je vous invite donc à visiter la section bien rédigée de la documentation pour en savoir plus : Gestion du schéma et migrations.
Dans la suite de l’article je récapitulerai les principales commandes.
Tout d’abord, voici un lien vers l’API de la classe SchemaShell. Il vous faudra pouvoir lancer la Console de CakePHP pour effectuer les commandes ci-dessous.
Les commandes principales sont donc :
-
cake schema generate : pour générer un fichier schema.php (dans « /config/sql/« )contenant le schéma des tables liées aux modèles existants (par défaut les autres sont ignorées, mais si vous souhaitez les inclure il faut rajouter le paramètre « -f« ).
-
Note : Ce fichier sera une description générique de votre base de données et pourra en théorie être réimportée dans un autre SGBD
- Si vous avez déjà effectué cette opération de génération, vous aurez deux options : Ecraser (taper « O »), Créer une autre image (taper « S »). Dans le premier cas, le fichier schema.php sera écrasé et remplacé par votre nouveau schéma, dans le second cas un fichier schema_X.php sera créé (X étant un entier incrémenté).
-
- cake schema dump [nomdufichier.sql] : pour générer un « dump » SQL de votre base de données. Le dump est en fait une série d’intructions SQL propres à votre SGBD. Le paramètre de nom du fichier de sortie n’est pas obligatoire : si il est vide, le dump sera affiché dans la console.
- cake schema run create : est le pendant de « generate ». Cela va donc créer une base de données d’après le contenu du fichier schema.php : attention, la base existante sera supprimée et recréée !
- cake schema run update -s XX : permet de mettre à jour votre base de données en exécutant les commandes contenues dans le fichier de snapshot (-s) n° XX. Ainsi, si vous avez incrémentalement fait évoluer votre base de données vous pourrez la mettre à jour sans soucis !
Enfin, notez simplement que vous pouvez également « simuler » ces modifications en rajoutant le paramètre « -dry » au lancement de la commande. Désormais vous êtes prêts pour livrer vos applications proprement avec un déploiement sûr et efficace de votre base de données !
Connaissiez-vous cette fonctionnalité ? L’utilisez vous régulièrement ? Y a-t-il des inconvénients ou des problèmes d’après vous ? N’hésitez pas à réagir !
If you enjoyed this post, make sure you subscribe to my RSS feed! Tags : CakePHP, migration, pense-bête