Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

💡 [REQUEST] - Système de migration #777

Open
ArnaudTA opened this issue Oct 17, 2023 · 0 comments
Open

💡 [REQUEST] - Système de migration #777

ArnaudTA opened this issue Oct 17, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@ArnaudTA
Copy link
Collaborator

Description

Implémenter un système pour migrer les resources qui ont été généré par les plugins et imaginer un cycle de vie complétement supervisé

PRs liées

No response

Issues liées

No response

Exemples simples

### Plans de migration

Choix A, plugin-to-database

  • On écrit un script nodeJS de migration qui migre toutes les ressources, (destruction / recréation, ou rennomage si possible)
  • on applique les mêmes régles de renommage sur les données en BDD (migration ORM)
  • Les plugins sont réécrits pour continuer à "calculer" le nom des ressources et utilise le nouveau système de nommage

Pour:

  • Le système est d'équerre pour tout le monde
    Contre:
  • La migration peut couter cher en compute et peut engendrer des pertes de ressources ou des crash
  • Le système de déploiement doit être modifié pour jouer le script avant l'ORM

Choix B, Versionning, remplacement au fil de l'eau

  • migration ORM
  • ajout d'un numéro de version pour les ressources en BDD
  • ajout d'un numéro de version sur les plugins
  • lors d'une action sur une ressource le plugin est en charge de vérifier le numéro de version et utilise le système de nommage en conséquence
  • Le plugin peut envoyer un ordre à la couche business pour update le numéro de version en BDD

Pour:

  • Les ressources ne bougent pas tant qu'aucune action n'est lancé dessus
  • Une fois le travail préparatoire fait, il peux servir à d'autres migrations
    Contre:
  • Beaucoup de dev et de specs à établir !

Choix C, Keep it safe, nommage

  • script SQL ou node lancé pour tracer le nommage de toutes les ressources actuelles (ajout table ou colonne)
  • migration ORM
  • Pour chaque action sur une ressource existante, envoi de l'ensemble des noms des ressources associés aux plugins
  • Pour chaque création de ressource, les plugins devront remonter le généré pour la ressource afin d'ếtre enregistré

Pour:

  • Les ressources ne bougent pas, aucune perte à prévoir
  • Rapide à prévoir
    Contre:
  • N'empeche pas les potentiels conflits avec les ressources actuels ou prévoir un système de contournement
  • Incohérence de nommmage potentiellement à très long terme
  • Refactor à prévoir sur le plugin manager et un peu sur les plugins
  • (Si Le système de déploiement est écrit en Node il faut modifier le système de déploiement)

Spécifications techniques

No response

@ArnaudTA ArnaudTA added the enhancement New feature or request label Oct 17, 2023
@ArnaudTA ArnaudTA changed the title 💡 [REQUEST] - <title> 💡 [REQUEST] - Système de migration Oct 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant