Skip to main content

Exportieren von Migrationsdaten von GitHub Enterprise Server

Um Plattformen zu ändern oder von einer Testinstanz zu einer Produktionsinstanz zu wechseln, kannst du Migrationsdaten aus einer GitHub Enterprise Server-Instanz exportieren, indem du die Instanz vorbereitest, die Repositorys sperrst und ein Migrationsarchiv generierst.

Vorbereiten der Quellinstanz von GitHub Enterprise Server

  1. Verifiziere, dass du auf der GitHub Enterprise Server-Quelle ein Websiteadministrator bist. Dies ist die beste Möglichkeit zu überprüfen, ob SSH-Zugriff auf die Instanz möglich ist.

  2. Generieren eines Zugriffstokens mit den Bereichen repo und admin:org auf der GitHub Enterprise Server-Quellinstanz.

  3. Erstelle zum Minimieren der Ausfallzeit eine Liste der Repositorys, die Du von der Quellinstanz exportieren möchtest. Du kannst mehrere Repositorys gleichzeitig zu einem Export hinzufügen. verwende dazu eine Textdatei, in der die URL jedes Repositorys in einer separaten Zeile aufgelistet wird.

Exportieren der GitHub Enterprise Server-Quellrepositorys

Note

Das Sperren eines Repositorys verhindert den gesamten Schreibzugriff auf das Repository. Einem gesperrten Repository können keine neuen Teams oder Mitarbeiter zugeordnet werden.

Wenn du eine Testversion ausführst, musst du das Repository nicht sperren. Wenn du Daten aus einem Repository migrierst, das gerade verwendet wird, empfiehlt GitHub die Sperrung des Repositorys. Weitere Informationen findest du unter Informationen zu „ghe-migrator“.

  1. Melde dich über SSH bei Ihre GitHub Enterprise Server-Instance 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. Ersetzen Sie HOSTNAME durch den Hostnamen Ihrer Instanz bzw. durch den Hostnamen oder die IP-Adresse eines Knotens. Weitere Informationen findest du unter Auf die Verwaltungsshell (SSH) zugreifen.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Führe den Befehl ghe-migrator add mit der URL eines Repositorys aus, um das Repository auf den Export vorzubereiten:

    • Füge zum Sperren des Repositorys --lock an den Befehl an. Wenn du einen Testlauf durchführst, ist --lock nicht erforderlich.

      ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock
      
    • Du kannst Dateianlagen ausschließen, indem du --exclude_attachments an den Befehl anfügst. Dateianhänge können groß sein und blähen Ihr endgültiges Migrationsarchiv ggf. unnötig auf.

    • Um mehrere Repositorys gleichzeitig für den Export vorzubereiten, erstellst du eine Textdatei, in der die URL jedes Repositorys auf einer separaten Zeile aufgelistet wird, und führst den Befehl ghe-migrator add mit dem Flag -i und dem Pfad zu deiner Textdatei aus.

      ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
      
  3. Gib deinen GitHub Enterprise Server-Benutzernamen ein, wenn du dazu aufgefordert wirst:

    Enter username authorized for migration:  admin
    
  4. Wenn du ein personal access token angeben sollst, gib das Zugriffstoken ein, das du in Vorbereiten der Quellinstanz von GitHub Enterprise Server erstellt hast:

    Enter personal access token:  **************
    
  5. Nach Abschluss des Befehls ghe-migrator add werden di eindeutige zum Identifizieren dieses Exports generierte „Migrations-GUID“ und eine Liste der dem Export hinzugefügten Ressourcen ausgegeben. Du verwendest die generierte Migrations-GUID in den nachfolgenden Schritten ghe-migrator add und ghe-migrator export, um ghe-migrator anzuweisen, mit demselben Export fortzufahren.

    > 101 models added to export
    > Migration GUID: EXAMPLE-MIGRATION-GUID
    > Number of records in this migration:
    > users                        |  5
    > organizations                |  1
    > repositories                 |  1
    > teams                        |  3
    > protected_branches           |  1
    > pull_request_reviews         |  1
    > milestones                   |  1
    > issues                       |  3
    > pull_requests                |  5
    > pull_request_review_comments |  4
    > commit_comments              |  2
    > issue_comments               | 10
    > issue_events                 | 63
    > releases                     |  3
    > attachments                  |  4
    > projects                     |  2
    

    Sobald du ein neues Repository mit einem vorhandenen Migrations-GUID hinzufügst, wird der vorhandene Export aktualisiert. Wenn du ghe-migrator add erneut ausführst, ohne eine Migrations-GUID anzugeben, wird ein neuer Export gestartet, und es wird auch eine neue Migrations-GUID generiert. Verwende nicht die während eines Exports generierte Migrations-GUID, wenn du deine Migration auf den Import vorbereitest.

  6. Um demselben Export weitere Repositorys hinzuzufügen, verwendest du den Befehl ghe-migrator add mit dem Flag -g. Du übergibst die URL des neuen Repositorys und den Migrations-GUID aus Schritt 5:

    ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock
    
  7. Generiere nach dem Hinzufügen der Repositorys mit dem Befehl ghe-migrator export und dem Flag -g sowie der Migrations-GUID aus Schritt 5 das Migrationsarchiv:

    $ ghe-migrator export -g MIGRATION-GUID
    > Archive saved to: /data/github/current/tmp/MIGRATION-GUID.tar.gz
    
    • 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.
  8. Trenne die Verbindung mit Ihre GitHub Enterprise Server-Instance:

    $ exit
    > logout
    > Connection to HOSTNAME closed.
    
  9. Kopiere das Migrationsarchiv mithilfe des Befehls scp auf deinen Computer. Die Archivdatei wird mit dem Migrations-GUID benannt:

    scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop
    
  10. Informationen zum Vorbereiten der archivierten Migrationsdaten für den Import in eine GitHub Enterprise Server-Instanz findest du unter Migrieren von Daten zu GitHub Enterprise Server.