Projet

Général

Profil

R&D #447

Mis à jour par Johan Cwiklinski il y a plus de 11 ans

Le système actuel de mise à jour de Galette repose intégralement sur des fichiers SQL, ce qui ne permet pas certaines choses. De plus, il implique la modification de 4 fichiers (les fichiers d'installation et de mise à jour pour postgres et pour mysql) ; ce qui est tout sauf pratique, rapide et fiable... Il est aussi impossible de revenir à une ancienne version de la base, toute mise à jour est "définitive". 

 Des ORM comme Doctrine fournissent ce genre de choses, mais c'est n'est pas utilisable sans avoir recours intégralement à l'ORM. Une solution alternative serait soit de développer un système propre à galette qui s'assure de la mise à jour des bases, soit d'en utiliser un existant. J'ai trouvé deux choses qui pourraient correspondre : 
 * -http://phinx.org/- (ne supporte que MySQL) http://phinx.org/ 
 * https://github.com/alwex/php-database-migration 
 * https://github.com/Jaymon/Mingo 
 * https://github.com/ruckus/ruckusing-migrations 
 * http://www.doctrine-project.org/projects/migrations.html (probablement d'avantage problématique sans Doctrine...) 
 * https://github.com/davedevelopment/phpmig 
 * http://ezcomponents.org/docs/api/latest/introduction_DatabaseSchema.html (projet encore en vie ?) 
 * http://www.phing.info/ + http://dbdeploy.com/ (http://davedevelopment.co.uk/2008/04/14/how-to-simple-database-migrations-with-phing-and-dbdeploy.html) 
 * http://akrabat.com/zend-framework/akrabat_db_schema_manager-zend-framework-database-migrations/ 

 Voir aussi http://fr.slideshare.net/harrieverveer/database-version-control-without-pain-the-phpnw10-version

Retour