Skip to main content

Exportieren von Migrationsdaten aus deinem Unternehmen

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

Hinweis: 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 Migrationen.

  1. Melde dich über SSH bei your 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. Weitere Informationen findest du unter Zugreifen auf die Verwaltungsshell (SSH).

    $ 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. Falls du das Quellrepository gesperrt hast, kannst du den Befehl ghe-migrator target_url ausführen, um eine benutzerdefinierte Sperrmeldung auf der Repositoryseite festzulegen, die auf den neuen Speicherort des Repositorys verweist. Gib die URL des Quell-Repositorys, die URL des Ziel-Repositorys und den Migrations-GUID aus Schritt 5 weiter:

    $ ghe-migrator target_url https://HOSTNAME/USERNAME/REPO-NAME https://TARGET-HOSTNAME/TARGET-USER-NAME/TARGET-REPO-NAME -g MIGRATION-GUID
  7. 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
  8. 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.
  9. Trenne die Verbindung mit your GitHub Enterprise Server instance:

    $ exit
    > logout
    > Connection to HOSTNAME closed.
  10. 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
  11. Informationen zum Vorbereiten der archivierten Migrationsdaten für den Import in eine GitHub Enterprise Server-Instanz findest du unter Vorbereiten der Datenmigration zu deinem Unternehmen.