Vorbereiten der migrierten Daten für den Import in GitHub Enterprise Server
-
Kopiere mithilfe des
scp
-Befehls das Migrationsarchiv, das über deine Quellinstanz oder Organisation generiert wurde, in dein GitHub Enterprise Server-Ziel:scp -P 122 PATH-TO-MIGRATION-GUID.tar.gz admin@HOSTNAME:/home/admin/
-
Stelle als Websiteadministrator eine SSH-Verbindung mit deiner GitHub Enterprise Server-Zielinstanz her.
ssh -p 122 admin@HOSTNAME
-
Führe den Befehl
ghe-migrator prepare
aus, um das Archiv für den Import auf der Zielinstanz vorzubereiten, und generiere eine neue Migrations-GUID, die du in den nachfolgenden Schritten verwendest:ghe-migrator prepare /home/admin/MIGRATION-GUID.tar.gz
- Führe
ghe-migrator prepare
erneut aus, und rufe eine neue Migrations-GUID ab, um einen neuen Importversuch zu starten. - 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.
- Führe
Liste mit Migrationskonflikten generieren
-
Verwende den
ghe-migrator conflicts
-Befehl mit der Migrations-GUID, um eine conflicts.csv-Datei zu generieren:ghe-migrator conflicts -g MIGRATION-GUID > conflicts.csv
- Wenn keine Konflikte gemeldet werden, kannst du die Daten sicher importieren, indem du die Schritte unter Migrieren von Daten zu GitHub Enterprise Server ausführst.
-
Verwende bei Konflikten den
scp
-Befehl, um conflicts.csv auf deinen lokalen Computer zu kopieren:scp -P 122 admin@HOSTNAME:conflicts.csv ~/Desktop
-
Fahre mit Beheben von Migrationskonflikten oder Einrichten benutzerdefinierter Zuordnungen fort.
Migrationskonflikte überprüfen
- Öffne conflicts.csv mit einem Text-Editor oder einer CSV-kompatiblen Tabellensoftware.
- Überprüfe die Datei conflicts.csv, um sicherzustellen, dass beim Import die richtigen Aktionen ausgeführt werden. Berücksichtige dabei die Anleitung für die folgenden Beispiele und Verweistabellen.
Die conflicts.csv-Datei enthält eine Migrationszuordnung von Konflikten und empfohlenen Aktionen. Eine Migrationszuordnung listet auf, welche Daten von der Quellinstanz migriert werden und wie die Daten auf die Zielinstanz angewendet werden.
model_name | source_url | target_url | recommended_action |
---|---|---|---|
user | https://example-gh.source/octocat | https://example-gh.target/octocat | map |
organization | https://example-gh.source/octo-org | https://example-gh.target/octo-org | map |
repository | https://example-gh.source/octo-org/widgets | https://example-gh.target/octo-org/widgets | rename |
team | https://example-gh.source/orgs/octo-org/teams/admins | https://example-gh.target/orgs/octo-org/teams/admins | merge |
Jede Zeile in conflicts.csv bietet die folgenden Informationen:
Name | BESCHREIBUNG |
---|---|
model_name | Der Typ der zu ändernden Daten. |
source_url | Die Quell-URL der Daten. |
target_url | Die erwartete Ziel-URL der Daten. |
recommended_action | Bevorzugte Aktion, die ghe-migrator beim Importieren von Daten ausführt |
Mögliche Zuordnungen für jeden Datensatztyp
Es gibt einige verschiedene Zuordnungsaktionen, die ghe-migrator
beim Übertragen von Daten ausführen kann:
action | BESCHREIBUNG | Entsprechende Modelle |
---|---|---|
import | (Standard) Daten von der Quellinstanz werden auf die Zielinstanz importiert. | Alle Datensatztypen |
map | Anstatt basierend auf den Quelldaten ein neues Modell zu erstellen, wird ein vorhandener Datensatz im Ziel verwendet. Dies ist nützlich zum Importieren eines Repositorys in eine vorhandene Organisation oder Zuordnen von Benutzeridentitäten im Ziel zu Benutzeridentitäten in der Quelle. | Benutzer*innen, Organisationen |
rename | Daten von der Quellinstanz werden umbenannt und anschließend auf die Zielinstanz kopiert. | Benutzer, Organisationen, Repositorys |
map_or_rename | Bei Vorhandensein der Zielinstanz sollte die Zuordnung zur Zielinstanz erfolgen. Andernfalls sollte das importierte Modell umbenannt werden. | Benutzer |
merge | Daten von der Quellinstanz werden mit vorhandenen Daten auf der Zielinstanz kombiniert. | Teams |
Es wird dringend empfohlen, die conflicts.csv-Datei zu überprüfen und ghe-migrator audit
zu verwenden, um sicherzustellen, dass die geeigneten Aktionen ausgeführt werden. Wenn alles wie gewünscht aussieht, kannst du mit Migrieren von Daten zu GitHub Enterprise Server fortfahren.
Migrationskonflikte beheben und benutzerdefinierte Zuordnungen einrichten
Wenn du der Meinung bist, dass ghe-migrator
eine nicht ordnungsgemäße Änderung vornimmt, kannst du Korrekturen vornehmen, indem du die Daten in conflicts.csv änderst. Du kannst an allen Zeilen in conflicts.csv Änderungen vornehmen.
Angenommen, du bemerkst, dass der Benutzer octocat
aus der Quelle im Ziel octocat
zugeordnet wird:
model_name | source_url | target_url | recommended_action |
---|---|---|---|
user | https://example-gh.source/octocat | https://example-gh.target/octocat | map |
Du kannst den Benutzer einem anderen Benutzer auf der Zielinstanz zuordnen. Angenommen, du weißt, dass octocat
im Ziel eigentlich monalisa
sein sollte. Du kannst die target_url
-Spalte in conflicts.csv so ändern, dass auf monalisa
verwiesen wird:
model_name | source_url | target_url | recommended_action |
---|---|---|---|
user | https://example-gh.source/octocat | https://example-gh.target/monalisa | map |
Weiteres Beispiel: Wenn du das octo-org/widgets
-Repository in octo-org/amazing-widgets
in der Zielinstanz umbenennen möchtest, ändere target_url
in octo-org/amazing-widgets
und recommend_action
in rename
.
model_name | source_url | target_url | recommended_action |
---|---|---|---|
repository | https://example-gh.source/octo-org/widgets | https://example-gh.target/octo-org/amazing-widgets | rename |
Benutzerdefinierte Zuordnungen hinzufügen
Während einer Migration geschieht es häufig, dass migrierte Benutzer andere Benutzernamen auf der Zielinstanz als auf der Quellinstanz besitzen.
Mit einer Liste der Benutzernamen von der Quellinstanz und einer Liste der Benutzernamen von der Zielinstanz kannst du eine CSV-Datei mit benutzerdefinierten Zuordnungen erstellen und anschließend anwenden, um sicherzustellen, dass der Benutzername und Inhalt jedes Benutzers am Ende einer Migration richtig zugeordnet werden.
Du kannst schnell eine CSV-Datei der migrierten Benutzer*innen im CSV-Format erstellen, die erforderlich ist, um benutzerdefinierte Zuordnungen mithilfe des ghe-migrator audit
-Befehls anzuwenden:
ghe-migrator audit -m user -g MIGRATION-GUID > users.csv
Nun kannst du diese CSV-Datei bearbeiten und die neue URL für jeden Benutzerin eingeben, die du zuordnen oder umbenennen möchtest. Aktualisiere dann die vierte Spalte, damit map
bzw. rename
entsprechend vorliegt.
Um beispielsweise den Benutzer octocat
in monalisa
im Ziel https://example-gh.target
umzubenennen, erstelle eine Zeile mit dem folgenden Inhalt:
model_name | source_url | target_url | state |
---|---|---|---|
user | https://example-gh.source/octocat | https://example-gh.target/monalisa | rename |
Mit demselben Prozess kannst du Zuordnungen für jeden Datensatz erstellen, der benutzerdefinierte Zuordnungen unterstützt. Weitere Informationen findest du in der Tabelle zu möglichen Zuordnungen für Datensätze.
Geänderte Migrationsdaten anwenden
-
Nachdem du Änderungen vorgenommen hast, verwende den Befehl
scp
, um deine bearbeitete conflicts.csv-Datei (oder eine beliebige andere .csv-Zuordnungsdatei im richtigen Format) auf die Zielinstanz anzuwenden:scp -P 122 ~/Desktop/conflicts.csv admin@HOSTNAME:/home/admin/
-
Ordne die Migrationsdaten mithilfe des
ghe-migrator map
-Befehls neu zu. Übergib dazu den Pfad zu deiner bearbeiteten .csv-Datei und die Migrations-GUID:ghe-migrator map -i conflicts.csv -g MIGRATION-GUID
-
Wenn der
ghe-migrator map -i conflicts.csv -g MIGRATION-GUID
-Befehl berichtet, dass noch immer Konflikte bestehen, führe den Vorgang zum Beheben von Migrationskonflikten erneut durch.