XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. PHP: Hypertext Preprocessor
  3. Pluf - Framework en PHP5

Ajout d'un système de migrations pour Pluf

The 2007-12-19 at 13:35 by Loïc d'Anterroches filed under Pluf - Framework en PHP5.

Si vous écrivez une application avec Pluf, il arrivera un moment où la mise à jour de votre code impliquera des changements sur votre base de données (ajout/suppresion de tables ou champs, etc.) ou une modification des fichiers dans votre espace de stockage. Jusqu’à présent avec Pluf vous deviez développer votre propre solution "ad-hoc", soyez heureux, avec la révision 124 du code, un système simple et performant est maintenant disponible.

Le principe est inspiré de Ruby On Rails. La seule nécessité est l’ajout d’une table schema_info qui contient tout simplement pour chaque application, la version actuelle du schema. Ensuite, il suffit de créer une série de scripts de migration pour aller d’une version à une autre, aussi bien en upgrade qu’en downgrade (si quelqu’un peut me donner une bonne traduction française de ces deux termes je suis preneur) et le système de migration s’occupera du reste.

Par exemple, voici le code d’installation de Pluf. Vous pouvez voir l’installation et la suppression des tables. Le script de migration s’utilise très simplement. Par exemple :

$ php migrate.php --conf=/fichier/de/conf.php --app=Pluf --version=1

Cela passe l’application Pluf configurée avec le fichier /fichier/de/conf.php en version 1. Ou encore :

$ php migrate.php --conf=/fichier/de/conf.php -a

Passe toutes les applications définies dans le fichier de configuration dans la version la plus récente.

Avec ce système, si vous avez fait correctement vos fonctions de migration, vous pouvez tranquillement mettre à jour votre site sans vous poser de questions.

Note : Je pense faire migration particulière avec comme nom Setup pour permettre l’installation et la suppression d’une application.

Comments from readers

Romain F. said:

"aussi bien en upgrade qu’en downgrade (si quelqu’un peut me donner une bonne traduction française de ces deux termes je suis preneur)"

Mise à jour / régression...

loïc m. said:

Parfois certains termes ne peuvent / ne doivent pas être traduit ;)
Toute personne lisant ton blog comprendra parfaitement ces deux termes :)

Bonne nouvelle pour Pluf ^^
Vivement la prochaine base de Plume à base de Pluf... :D

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS