Aller au contenu

Environment Diff

Environment Diff permet de comparer les schémas de base de données de deux environnements côte à côte. Utile avant un merge ou pour auditer les différences structurelles.

Comparaison de diff de schéma


  1. Analyse du schéma : Introspection des deux environnements.
  2. Comparaison : Sémantique forward-only — changements de la source manquants dans la cible.
  3. Génération de migration : Commandes SQL pour chaque changement détecté.

  • Dans la source, pas dans la cibleCREATED
  • Dans les deux → Comparaison champ par champ
  • Uniquement dans la cibleNon affiché comme DROPPED

Exception : COLUMN_DROPPED est détecté pour les changements de colonnes.


TypeDescriptionBreaking
TABLE_CREATEDTable en source, pas en cibleNon
COLUMN_ADDEDNouvelle colonneNon
COLUMN_DROPPEDColonne suppriméeOui
COLUMN_TYPE_CHANGEDType modifiéDépend*
COLUMN_NULLABLE_CHANGEDNullable modifiéDépend
COLUMN_DEFAULT_CHANGEDDefault modifiéNon
INDEX_CREATED / INDEX_DROPPEDIndexNon
ENUM_* / VIEW_* / RELATIONSHIP_*Enum, vue, relationVoir doc

  • Sélectionner/désélectionner des changements individuels.
  • Les changements breaking ne sont pas présélectionnés par défaut.

query EnvironmentDiff($input: EnvironmentDiffInput!) {
environmentDiff(input: $input) {
success
message
changes {
changeType
objectType
objectName
fieldName
oldValue
newValue
isBreaking
sql
}
summary {
totalChanges
breakingChanges
addedTables
droppedTables
modifiedTables
}
}
}

Variables:

{
"input": {
"projectId": "f7e4a264-d659-4719-91e8-c2d74654e529",
"sourceEnvironment": "master",
"targetEnvironment": "staging"
}
}