Skip to main content

Migrieren von Daten zu GitHub Enterprise Server

Nachdem du ein Migrationsarchiv generiert hast, kannst du die Daten in deine GitHub Enterprise Server-Zielinstanz importieren. Du kannst die Änderungen auf potenzielle Konflikte überprüfen, bevor du die Änderungen dauerhaft auf deine Zielinstanz anwendest.

Anwenden der importierten Daten auf GitHub Enterprise Server

Bevor du Daten zu deinem GitHub Enterprise Server migrieren kannst, musst du die Daten vorbereiten und eventuelle Konflikte beheben. Weitere Informationen findest du unter Vorbereiten der Migration von Daten zu GitHub Enterprise Server.

Nachdem du die Daten vorbereitet und Konflikte beseitigt hast, kannst du die importierten Daten auf GitHub Enterprise Server anwenden.

  1. Stelle als Websiteadministrator eine SSH-Verbindung mit deiner GitHub Enterprise Server-Zielinstanz her.
ssh -p 122 admin@HOSTNAME
  1. Starte den Importvorgang mit dem Befehl ghe-migrator import. du benötigst Folgendes:

    $ ghe-migrator import /home/admin/MIGRATION-GUID.tar.gz -g MIGRATION-GUID -u USERNAME -p TOKEN
    
    > Starting GitHub::Migrator
    > Import 100% complete /
    
    • Um anzugeben, wo Migrationsdateien gestaget werden sollen, füge dem Befehl --staging-path=/full/staging/path an. Wird standardmäßig auf /data/user/tmp festgelegt.

Migrationsdaten überprüfen

Mit ghe-migrator audit wird standardmäßig jeder Datensatz zurückgegeben. Dadurch kannst du die Datensätze zudem filtern nach

  • den Datensatztypen,
  • dem Zustand der Datensätze.

Die Datensatztypen stimmen mit denen in den migrierten Daten überein.

Filter für Datensatztypen

EintragstypFiltername
Benutzeruser
Organisationenorganization
Repositorysrepository
Teamsteam
Meilensteinemilestone
Projektboardsproject
Problemeissue
Issue-Kommentareissue_comment
Pull Requestspull_request
Pull-Request-Reviewspull_request_review
Commit-Kommentarecommit_comment
Pull-Request-Review-Kommentarepull_request_review_comment
Releasesrelease
Bei Pull Requests oder Issues ergriffene Maßnahmenissue_event
Geschützte Branchesprotected_branch

Filter für Datensatzzustände

DatensatzzustandBESCHREIBUNG
exportDer Datensatz wird exportiert.
importDer Datensatz wird importiert.
mapDer Datensatz wird zugeordnet.
renameDer Datensatz wird umbenannt.
mergeDer Datensatz wird gemergt.
exportedDer Datensatz wurde erfolgreich exportiert.
importedDer Datensatz wurde erfolgreich importiert.
mappedDer Datensatz wurde erfolgreich zugeordnet.
renamedDer Datensatz wurde erfolgreich umbenannt.
mergedDer Datensatz wurde erfolgreich gemergt.
failed_exportFehler beim Export des Datensatzes.
failed_importFehler beim Import des Datensatzes.
failed_mapFehler beim Zuordnen des Datensatzes.
failed_renameFehler beim Umbenennen des Datensatzes.
failed_mergeFehler beim Mergen des Datensatzes.

Überwachte Datensätze filtern

Mit dem Befehl ghe-migrator audit kannst du unter Verwendung des Flags -m nach dem Datensatztyp filtern. Ebenso kannst du mit dem Flag -s nach dem Importstatus filtern. Der Befehl sieht wie folgt aus:

ghe-migrator audit -m RECORD_TYPE -s STATE -g MIGRATION-GUID

Wenn du beispielsweise alle erfolgreich importierten Organisationen und Teams anzeigen möchtest, würdest du Folgendes eingeben:

$ ghe-migrator audit -m organization,team -s mapped,renamed -g MIGRATION-GUID
> model_name,source_url,target_url,state
> organization,https://gh.source/octo-org/,https://ghe.target/octo-org/,renamed

Wir empfehlen dringend, jeden fehlgeschlagenen Import zu überprüfen. Dazu gibst du Folgendes ein:

$ ghe-migrator audit -s failed_import,failed_map,failed_rename,failed_merge -g MIGRATION-GUID
> model_name,source_url,target_url,state
> user,https://gh.source/octocat,https://gh.target/octocat,failed
> repository,https://gh.source/octo-org/octo-project,https://ghe.target/octo-org/octo-project,failed

Kontaktiere GitHub Enterprise Support, wenn du Bedenken in Bezug auf fehlgeschlagene Importvorgänge hast.

Abschließen des Imports in GitHub Enterprise Server

Nachdem deine Migration auf die Zielinstanz angewendet wurde und du die Migration überprüft hast, entsperrst du die Repositorys und löschst sie von der Quellinstanz. Vor dem Löschen deiner Quelldaten solltest du etwa zwei Wochen warten, um sicherzugehen, dass alles erwartungsgemäß funktioniert.

Repositorys auf der Zielinstanz entsperren

  1. Melde dich über SSH bei deine GitHub Enterprise Server-Instanz an. Wenn deine Instanz mehrere Knoten umfasst, wenn z. B. Hochverfügbarkeit oder Georeplikation konfiguriert ist, wird SSH im primären Knoten konfiguriert. Wenn du einen Cluster verwendest, kannst du SSH in einen beliebigen Knoten einfügen. Weitere Informationen zum SSH-Zugriff findest du unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Entsperre alle importierten Repositorys mit dem ghe-migrator unlock-Befehl. Du benötigst Deine Migrations-GUID:

$ ghe-migrator unlock -g MIGRATION-GUID
> Unlocked octo-org/octo-project

Repositorys auf der Quellinstanz entsperren

Entsperren von Repositorys einer Organisation auf GitHub.com

Um die Repositorys einer GitHub.com-Organisation zu entsperren, sendest du eine DELETE-Anforderung an den Endpunkt zum Entsperren der Migration. du benötigst Folgendes:

  • Dein Zugriffstoken für die Authentifizierung
  • Die eindeutige id der Migration
  • den Namen des zu entsperrenden Repositorys
curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \
  -H "Accept: application/vnd.github.wyandotte-preview+json" \
  https://api.github.com/orgs/ORG-NAME/migrations/ID/repos/REPO_NAME/lock

Löschen von Repositorys aus einer Organisation auf GitHub.com

Nachdem du die Repositorys der GitHub.com-Organisation entsperrt hast, solltest du alle zuvor migrierten Repositorys mit dem Endpunkt zum Löschen von Repositorys löschen. du benötigst dein Zugriffstoken für die Authentifizierung:

curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \
  https://api.github.com/repos/ORG-NAME/REPO_NAME

Repositorys auf einer GitHub Enterprise Server-Instanz entsperren

  1. Melde dich über SSH bei deine GitHub Enterprise Server-Instanz an. Wenn deine Instanz mehrere Knoten umfasst, wenn z. B. Hochverfügbarkeit oder Georeplikation konfiguriert ist, wird SSH im primären Knoten konfiguriert. Wenn du einen Cluster verwendest, kannst du SSH in einen beliebigen Knoten einfügen. Weitere Informationen zum SSH-Zugriff findest du unter Auf die Verwaltungsshell (SSH) zugreifen.

    ssh -p 122 admin@HOSTNAME
    
  2. Entsperre alle importierten Repositorys mit dem ghe-migrator unlock-Befehl. Du benötigst Deine Migrations-GUID:

$ ghe-migrator unlock -g MIGRATION-GUID
> Unlocked octo-org/octo-project