Aller au contenu principal

Modification de base de données

Lors du développement de nouvelles fonctionnalités, ou de la refactorisation de celles existantes, il est parfois inévitable de modifier les schémas de base de données.

Les choses peuvent sembler effrayantes, en tant qu'utilisateur, vous devez généralement :

  • Vérifier la différence entre deux versions ou plus
  • Modifier la base de données de manière sûre et rétrocompatible
  • Se préparer à une éventuelle défaillance, par exemple avoir un script de retour en arrière
  • Remplacer progressivement les instances Logto en cours d'exécution par la nouvelle version

Hé, nous sommes aussi des développeurs, et nous savons qu'il est désagréable de faire toutes ces choses risquées mais obligatoires. Alors pourquoi ne pas les confier à quelqu'un qui ne fera pas d'erreur, comme un CLI ?

Désormais, votre processus de mise à niveau sera :

  • Exécutez logto db alt deploy depuis n'importe où pouvant accéder à la base de données
  • Remplacez progressivement les instances Logto en cours d'exécution par la nouvelle version

Commençons !

Déterminer la version à déployer

Si vous avez installé Logto CLI globalement, il est fortement recommandé de mettre à jour le CLI vers la dernière version avant de déployer pour obtenir toutes les modifications de base de données disponibles. Ensuite, exécutez la commande :

logto db alteration deploy

Si votre base de données est à jour, vous verrez le message ci-dessous :

[info] Found 0 alteration to deploy

Si vous avez des modifications non déployées, le CLI vous demandera de choisir la version souhaitée :

? Choose the alteration target version (Use arrow keys)
> 1.2.0
1.0.0

Théoriquement, la version à déployer devrait correspondre à la version de votre instance Logto. En attendant, vous pouvez utiliser la commande avec une version cible :

logto db alteration deploy 1.2.0

C'est utile lorsque vous souhaitez effectuer la modification dans un pipeline non-TTY, n'oubliez pas de passer l'URL de la base de données en utilisant --db-url. Voir Déploiement et configuration pour configurer un travail de modification dans votre cluster.

remarque:

Pour chaque script de modification, le Logto CLI exécutera l'ensemble du script dans une transaction. Donc, si un déploiement échoue, vous pouvez facilement continuer avec la même commande après avoir corrigé le problème.

Annuler les modifications

Nos scripts de modification sont également accompagnés d'un script down qui peut annuler les modifications. Pour revenir à l'état de la base de données à une version spécifique, remplacez 1.0.0 par votre version cible et exécutez la commande ci-dessous :

logto db alteration rollback 1.0.0
remarque:

Vous pouvez trouver tous les scripts de modification dans ce répertoire.

Pour les contributeurs

La branche master du dépôt Logto peut contenir des scripts de modification non publiés. Vous devrez peut-être déployer manuellement les modifications "next" en exécutant :

logto db alteration deploy next

Si vous développez une fonctionnalité nécessitant des modifications de base de données, plutôt que de mettre à jour le schéma de la base de données, vous devez également fournir un script au format suivant :

next-[timestamp]-what-to-do.ts

Consultez ce répertoire pour référence.