Preparing the migrated data for import to GitHub Enterprise Server
-
Con el comando
scp
, copia el archivo de migración generado desde tu instancia u organización de origen a tu GitHub Enterprise Server destino:$ scp -P 122 /path/to/archive/MIGRATION_GUID.tar.gz admin@hostname:/home/admin/
-
Como administrador de sitio, Entra por SSH en tu instancia destino de GitHub Enterprise Server.
$ ssh -p 122 admin@HOSTNAME
-
Usa el comando
ghe-migrator prepare
para preparar el archivo para importar en la instancia de destino y generar un nuevo GUID de Migración para que uses en los pasos subsiguientes:ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz
- Para comenzar un nuevo intento de importación, ejecuta
ghe-migrator prepare
nuevamente y obtén un nuevo GUID de migración. - Para especificar en donde se deben escalar los archivos de migración de acuerdo con la etapa, anexa el comando con
--staging-path=/full/staging/path
. La ruta predeterminada es/data/user/tmp
.
- Para comenzar un nuevo intento de importación, ejecuta
Generar una lista de conflictos de migración
- Con el comando
ghe-migrator conflicts
con el GUID de migración, genera un archivo conflicts.csv:$ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv
- If no conflicts are reported, you can safely import the data by following the steps in "Migrating data to your enterprise".
- Si hay conflictos, con el comando
scp
, copia conflicts.csv a tu computadora local:$ scp -P 122 admin@hostname:conflicts.csv ~/Desktop
- Continúa con "Resolver conflictos de migración o crear asignaciones personalizadas".
Revisar conflictos de migración
- Con un editor de texto o un software de hoja de cálculo compatible con CSV, abre conflicts.csv.
- Con la guía de los ejemplos y las tablas de referencia a continuación, revisa el archivo conflicts.csv para asegurarte de que se tomarán las medidas adecuadas al importar.
El archivo conflicts.csv contiene un mapa de migración de conflictos y acciones recomendadas. Un mapa de migración enumera tanto los datos que se migran desde el origen como la forma en que los datos se aplicarán al destino.
model_name | source_url | target_url | recommended_action |
---|---|---|---|
user | https://example-gh.source/octocatc | https://example-gh.target/octocat | map |
organización | https://example-gh.source/octo-org | https://example-gh.target/octo-org | map |
repositorio | https://example-gh.source/octo-org/widgets | https://example-gh.target/octo-org/widgets | rename (renombrar) |
equipo | https://example-gh.source/orgs/octo-org/teams/admins | https://example-gh.target/orgs/octo-org/teams/admins | fusionar |
Cada fila de conflicts.csv proporciona la siguiente información:
Nombre | Descripción |
---|---|
model_name | El tipo de datos que se están cambiando. |
source_url | La URL fuente de los datos. |
target_url | La URL de destino esperada de los datos. |
recommended_action | La acción preferida que tomará ghe-migrator al importar los datos. |
Asignaciones posibles para cada tipo de registro
Hay varias acciones de asignación diferentes que ghe-migrator
puede realizar al transferir datos:
Acción | Descripción | Modelos aplicables |
---|---|---|
importar | (predeterminado) Los datos del origen se importan al destino. | Todos los tipos de registro |
map | Los datos del origen se reemplazan por los datos existentes en el destino. | Usuarios, organizaciones, repositorios |
renombrar | Los datos del origen se renombran y luego se copian en el destino. | Usuarios, organizaciones, repositorios |
asignar_o_renombrar | Si el destino existe, asignar a ese destino. De lo contrario, renombrar el modelo importado. | Usuarios |
fusionar | Los datos del origen se combinan con los datos existentes en el destino. | Equipos |
We strongly suggest you review the conflicts.csv file and use ghe-migrator audit
to ensure that the proper actions are being taken. If everything looks good, you can continue to "Migrating data to your enterprise".
Resolver conflictos de migración o crear asignaciones personalizadas
Si crees que ghe-migrator
realizará un cambio incorrecto, puedes hacer correcciones cambiando los datos en conflicts.csv. Puedes hacer cambios en cualquiera de las filas en conflicts.csv.
Por ejemplo, supongamos que observas que el usuario octocat
del origen se está asignando a octocat
en el destino:
nombre_modelo | url_origen | url_destino | recommended_action |
---|---|---|---|
usuario | https://example-gh.source/octocat | https://example-gh.target/octocat | map |
Puedes optar por asignar el usuario a un usuario diferente en el destino. Supongamos que sabes que octocat
en realidad debe ser monalisa
en el destino. Puedes cambiar la columna target_url
en conflicts.csv a monalisa
:
model_name | source_url | target_url | recommended_action |
---|---|---|---|
usuario | https://example-gh.source/octocatc | https://example-gh.target/monalisa | map |
Como otro ejemplo, si deseas cambiar el nombre del repositorio octo-org/widgets
a octo-org/amazing-widgets
en la instancia de destino, cambia la target_url
a octo-org/amazing-widgets
y la recommended_action
a rename
:
model_name | source_url | target_url | recommended_action |
---|---|---|---|
repositorio | https://example-gh.source/octo-org/widgets | https://example-gh.target/octo-org/amazing-widgets | rename (renombrar) |
Agregar asignaciones personalizadas
Una situación común durante una migración es que los usuarios migrados tengan diferentes nombres de usuario en el destino que los que tienen en el origen.
Dada una lista de nombres de usuario en el origen y una lista de nombres de usuario en el destino, puedes crear un archivo CSV con asignaciones personalizadas y luego aplicarlo para garantizar que el nombre de usuario y el contenido de cada usuario se atribuyan correctamente al final de la migración.
Puedes generar rápidamente un CSV de usuarios que se migran en el formato CSV necesario para aplicar asignaciones personalizadas mediante el comando ghe-migrator audit
:
$ ghe-migrator audit -m user -g MIGRATION_GUID > users.csv
Ahora, puedes editar ese CSV e ingresar la nueva URL para cada usuario que quieras asignar o renombrar, y luego actualizar la cuarta columna para asignar
o renombrar
según corresponda.
Por ejemplo, para cambiar el nombre del usuario octocat
a monalisa
en el https://example-gh.target
de destino, debes crear una fila con el siguiente contenido:
model_name | source_url | target_url | state |
---|---|---|---|
usuario | https://example-gh.source/octocatc | https://example-gh.target/monalisa | rename (renombrar) |
Se puede usar el mismo proceso para crear asignaciones para cada registro que admita asignaciones personalizadas. Para obtener más información, consulta nuestra tabla sobre las posibles asignaciones de registro.
Aplicar datos de migración modificados
-
Después de hacer cambios, usa el comando
scp
para aplicar el conflicts.csv modificado (o cualquier otro csv de asignación en el formato correcto) a la instancia de destino:$ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/
-
Vuelve a asignar los datos de migración con el comando
ghe-migrator map
, pasando la ruta al archivo csv modificado y al GUID de migración:$ ghe-migrator map -i conflicts.csv -g MIGRATION_GUID
-
Si el comando
ghe-migrator map -i conflicts.csv -g MIGRATION_GUID
informa que aún existen conflictos, ejecuta nuevamente el proceso de resolución de conflictos de migración.