Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Cette version de GitHub Enterprise a été abandonnée le 2023-03-15. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Préparation de la migration des données vers GitHub Enterprise Server

Après avoir généré une archive de migration, vous pouvez importer les données dans votre instance GitHub Enterprise Server cible. Vous pouvez passer en revue les modifications pour les conflits potentiels avant d’appliquer définitivement les modifications à votre instance cible.

Préparation des données migrées pour l’importation vers GitHub Enterprise Server

  1. À l’aide de la commande scp, copiez l’archive de migration générée à partir de votre organisation ou instance source vers votre cible GitHub Enterprise Server :

    $ scp -P 122 PATH-TO-MIGRATION-GUID.tar.gz admin@HOSTNAME:/home/admin/
  2. En tant qu’administrateur de site, connectez-vous avec SSH à votre instance GitHub Enterprise Server cible.

    $ ssh -p 122 admin@HOSTNAME
  3. Utilisez la commande ghe-migrator prepare pour préparer l’archive à l’importation sur l’instance cible et générer un nouveau GUID de migration à utiliser dans les étapes suivantes :

    ghe-migrator prepare /home/admin/MIGRATION-GUID.tar.gz
    • Pour démarrer une nouvelle tentative d’importation, réexécutez ghe-migrator prepare et récupérez un nouveau GUID de migration.
    • Pour spécifier où ranger les fichiers de migration, ajoutez --staging-path=/full/staging/path à la commande. La valeur par défaut est /data/user/tmp.

Génération d’une liste des conflits de migration

  1. À l’aide de la commande ghe-migrator conflicts avec le GUID de migration, générez un fichier conflicts.csv :
    $ ghe-migrator conflicts -g MIGRATION-GUID > conflicts.csv
  2. En présence de conflits, à l’aide de la commande scp, copiez conflicts.csv sur votre ordinateur local :
    $ scp -P 122 admin@HOSTNAME:conflicts.csv ~/Desktop
  3. Passez à la section « Résolution des conflits de migration ou configuration de mappages personnalisés ».

Examen des conflits de migration

  1. À l’aide d’un éditeur de texte ou d’un tableur compatible CSV, ouvrez conflicts.csv.
  2. En vous appuyant sur les exemples et tableaux de référence ci-dessous, consultez le fichier conflicts.csv pour vous assurer que les actions appropriées seront effectuées à l’importation.

Le fichier conflicts.csv inclut un mappage de migration avec les conflits et actions recommandées. Un mappage de migration liste les données migrées à partir de la source et la façon dont les données seront appliquées à la cible.

model_namesource_urltarget_urlrecommended_action
userhttps://example-gh.source/octocathttps://example-gh.target/octocatmap
organizationhttps://example-gh.source/octo-orghttps://example-gh.target/octo-orgmap
repositoryhttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/widgetsrename
teamhttps://example-gh.source/orgs/octo-org/teams/adminshttps://example-gh.target/orgs/octo-org/teams/adminsmerge

Chaque ligne du fichier conflicts.csv fournit les informations suivantes :

NomDescription
model_nameLe type de données modifiées
source_urlL’URL source des données
target_urlL’URL cible attendue des données
recommended_actionL’action que la commande ghe-migrator effectuera par défaut à l’importation des données

Mappages possibles pour chaque type d’enregistrement

La commande ghe-migrator peut effectuer différentes actions de mappage dans le cadre du transfert de données :

actionDescriptionModèles applicables
import(par défaut) Les données de la source sont importées dans la cible.Tous les types d’enregistrement
mapLes données de la source sont remplacées par des données existantes sur la cible.Utilisateurs, organisations
renameLes données de la source sont renommées, puis copiées sur la cible.Utilisateurs, organisations, dépôts
map_or_renameSi la cible existe, le mappage est effectué avec cette cible. Sinon, le modèle importé est renommé.Utilisateurs
mergeLes données de la source sont combinées avec les données existantes sur la cible.Teams

Nous vous recommandons vivement de consulter le fichier conflicts.csv et d’utiliser ghe-migrator audit pour vous assurer que les actions appropriées seront effectuées. Si tout semble bon, vous pouvez continuer avec « Migrating data to GitHub Enterprise Server ».

Résolution des conflits de migration ou configuration de mappages personnalisés

Si vous pensez que la commande ghe-migrator effectuera une modification incorrecte, vous pouvez apporter des corrections en modifiant les données dans conflicts.csv. Vous pouvez apporter des modifications à n’importe quelle ligne de conflicts.csv.

Par exemple, supposons que l’utilisateur octocat de la source soit mappé à octocat sur la cible.

model_namesource_urltarget_urlrecommended_action
userhttps://example-gh.source/octocathttps://example-gh.target/octocatmap

Vous pouvez choisir de mapper l’utilisateur à un autre utilisateur sur la cible. Supposons que vous savez que octocat devrait être monalisa sur la cible. Vous pouvez changer la colonne target_url de conflicts.csv pour faire référence à monalisa.

model_namesource_urltarget_urlrecommended_action
userhttps://example-gh.source/octocathttps://example-gh.target/monalisamap

Autre exemple : si vous souhaitez renommer le dépôt octo-org/widgets en lui attribuant le nom octo-org/amazing-widgets sur l’instance cible, indiquez octo-org/amazing-widgets sous target_url et rename sous recommend_action.

model_namesource_urltarget_urlrecommended_action
repositoryhttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/amazing-widgetsrename

Ajout de mappages personnalisés

Un scénario courant durant une migration consiste à changer les noms des utilisateurs migrés entre la source et la cible.

Avec une liste des noms d’utilisateur de la source et une liste de noms d’utilisateur sur la cible, vous pouvez créer un fichier CSV avec des mappages personnalisés, puis l’appliquer pour vous assurer que le nom et le contenu de chaque utilisateur lui sont correctement attribués à la fin d’une migration.

Vous pouvez rapidement générer un fichier des utilisateurs migrés au format CSV nécessaire pour appliquer des mappages personnalisés à l’aide de la commande ghe-migrator audit :

$ ghe-migrator audit -m user -g MIGRATION-GUID > users.csv

À présent, vous pouvez modifier ce fichier CSV et entrer la nouvelle URL pour chaque utilisateur à mapper ou renommer, puis mettre à jour la quatrième colonne pour qu’elle ait l’état approprié, map ou rename.

Par exemple, pour renommer l’utilisateur octocat avec le nom monalisa sur la cible https://example-gh.target, vous devez créer une ligne avec le contenu suivant :

model_namesource_urltarget_urlstate
userhttps://example-gh.source/octocathttps://example-gh.target/monalisarename

Vous pouvez utiliser le même processus pour créer des mappages pour chaque enregistrement qui prend en charge les mappages personnalisés. Pour plus d’informations, consultez notre tableau des mappages possibles pour les enregistrements.

Application des données de migration modifiées

  1. Après avoir apporté des modifications, utilisez la commande scp pour appliquer votre fichier conflicts.csv modifié (ou tout autre fichier .csv de mappage au format correct) à l’instance cible :

    $ scp -P 122 ~/Desktop/conflicts.csv admin@HOSTNAME:/home/admin/
  2. Remappez les données de migration à l’aide de la commande ghe-migrator map en passant le chemin de votre fichier .csv modifié et le GUID de migration :

    $ ghe-migrator map -i conflicts.csv  -g MIGRATION-GUID
  3. Si la commande ghe-migrator map -i conflicts.csv -g MIGRATION-GUID signale que des conflits sont toujours présents, reprenez le processus de résolution des conflits de migration.