Amélioration #4032
fermé[Migration] Script de migration pour application (hors CORE)
100%
Description
Actuellement les scripts de migration sont des scripts bash exécuté dans un contexte restreint (par rapport à une API) pour les besoins de CORE.
Leur réalisation est complexe et a les défaut suivants :
- connaissance de linux exigée (shebang, bash, variables d'environnements…);
- système de fonctionnement différent du reste de Dynacase (API, ACTION, etc.);
- pas d'accès direct aux api de dynacase, il faut donc connaître la structure en base et faire du SQL.
Il serait préférable que les scripts de migration puissent être mis en place de la même manière que les API, soit :
- en PHP;
- avec l'autoloader;
- avec l'environnement du contexte;
- les variables d'environnement propres aux scripts de migration peuvent être ajoutées.
De plus, il serait utile de guider les utilisateurs lors de la réalisation de ces scripts, ce qui pourrait être intéressant c'est que les scripts de migrations soient d'une certaine manière considérés comme des hooks et procède tous du même modèle en trois phases :
- détection de la nécessité de la migration (pre), cette partie détecte si la migration est nécessaire et si ce n'est pas le cas le script s'arrête ici,
- migration, cette partie effectue la migration en tant que tel,
- post migration, cette partie s'exécute une fois la migration mise en place et effectue des tâche de vérification
Les parties pré et migration sont nécessaires, le post facultatif, les scripts devraient tous hériter d'une classe abstraite implémentant les trois méthodes.
Fichiers
Mis à jour par Charles Bonnissent il y a environ 12 ans
- Sujet changé de [Migration] Script de migration à [Migration] Script de migration pour application (hors CORE)
- Description mis à jour (diff)
Mis à jour par Éric Brison il y a environ 12 ans
- Fichier exemple de définition.zip exemple de définition.zip ajouté
Mis à jour par Éric Brison il y a presque 12 ans
- Statut changé de Nouveau à Intégré
- % réalisé changé de 0 à 100
Appliqué par commit dynacase-core|commit:84ba713ba4a50a560057eaf3fe1c67dbe0c2d23e.