Skip to main content

Prepararse para migrar los datos a tu empresa

Después de generar un archivo de migración, puedes importar los datos a tu instancia de destino del GitHub Enterprise Server. Podrás revisar los cambios para detectar posibles conflictos antes de aplicar de manera permanente los cambios a tu instancia de destino.

Preparar los datos migrados para importarlos a GitHub Enterprise Server

  1. Con el comando scp, copie el archivo de migración generado desde la instancia de origen o la organización en el destino de GitHub Enterprise Server:

    $ scp -P 122 /path/to/archive/MIGRATION_GUID.tar.gz admin@hostname:/home/admin/
  2. Como administrador del sitio, acceda mediante SSH a la instancia de GitHub Enterprise Server de destino.

    $ ssh -p 122 admin@HOSTNAME
  3. Usa el comando ghe-migrator prepare a fin de preparar el archivo para importar en la instancia de destino y generar un nuevo GUID de migración para usarlo en los pasos siguientes:

    ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz
    • Para comenzar un nuevo intento de importación, vuelva a ejecutar ghe-migrator prepare y obtenga un GUID de migración nuevo.
    • Para especificar dónde se deben almacenar provisionalmente los archivos de migración, anexe --staging-path=/full/staging/path al comando. Tiene como valor predeterminado /data/user/tmp.

Generar una lista de conflictos de migración

  1. Mediante el comando ghe-migrator conflicts con el GUID de migración, genere un archivo conflicts.csv:
    $ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv
  2. Si hay conflictos, con el comando scp, copie conflicts.csv en el equipo local:
    $ scp -P 122 admin@hostname:conflicts.csv ~/Desktop
  3. Continúe a "Resolución de conflictos de migración o configuración de asignaciones personalizadas".

Revisar conflictos de migración

  1. Con un editor de texto o un software de hoja de cálculo compatible con CSV, abra conflicts.csv.
  2. Con las instrucciones de los ejemplos y las tablas de referencia siguientes, revise el archivo conflicts.csv para asegurarse de que al realizar la importación se tomarán las medidas adecuadas.

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_namesource_urltarget_urlrecommended_action
userhttps://example-gh.source/octocathttps://example-gh.target/octocatmap
organizationhttps://example-gh.source/octo-orghttps://example-gh.target/octo-orgmap
repositoryhttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/widgetsrename
teamhttps://example-gh.source/orgs/octo-org/teams/adminshttps://example-gh.target/orgs/octo-org/teams/adminsmerge

Cada fila de conflicts.csv proporciona la información siguiente:

NombreDescripción
model_nameEl tipo de datos que se están cambiando.
source_urlLa URL fuente de los datos.
target_urlLa URL de destino esperada de los datos.
recommended_actionLa acción ghe-migrator preferida se realizará 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:

actionDescripciónModelos aplicables
import(predeterminado) Los datos del origen se importan al destino.Todos los tipos de registro
mapLos datos del origen se reemplazan por los datos existentes en el destino.Usuarios, organizaciones, repositorios
renameLos datos del origen se renombran y luego se copian en el destino.Usuarios, organizaciones, repositorios
map_or_renameSi el destino existe, asignar a ese destino. De lo contrario, renombrar el modelo importado.Usuarios
mergeLos datos del origen se combinan con los datos existentes en el destino.Teams

Se recomienda encarecidamente que revise el archivo conflicts.csv y use ghe-migrator audit para asegurarse de que se realizan las acciones adecuadas. Si todo parece correcto, puede continuar con "Migración de datos a la empresa".

Resolver conflictos de migración o crear asignaciones personalizadas

Si cree que ghe-migrator realizará un cambio incorrecto, puede hacer correcciones y cambiar los datos en conflicts.csv. Puede realizar cambios en cualquiera de las filas de conflicts.csv.

Por ejemplo, imagine que observa que el usuario octocat del origen se asigna a octocat en el destino:

model_namesource_urltarget_urlrecommended_action
userhttps://example-gh.source/octocathttps://example-gh.target/octocatmap

Puedes optar por asignar el usuario a un usuario diferente en el destino. Imagine que sabe que octocat realmente debería ser monalisa en el destino. Puede cambiar la columna target_url de conflicts.csv para que haga referencia a monalisa:

model_namesource_urltarget_urlrecommended_action
userhttps://example-gh.source/octocathttps://example-gh.target/monalisamap

Como otro ejemplo, si quiere cambiar el nombre del repositorio octo-org/widgets a octo-org/amazing-widgets en la instancia de destino, cambie target_url a octo-org/amazing-widgets y recommend_action a rename:

model_namesource_urltarget_urlrecommended_action
repositoryhttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/amazing-widgetsrename

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.

Puede 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, puede editar ese CSV y escribir la nueva URL para cada usuario que le gustaría asignar o renombrar, y luego actualizar la cuarta columna para tener map o rename según corresponda.

Por ejemplo, para cambiar el nombre del usuario octocat por monalisa en el elemento https://example-gh.target de destino, tendría que crear una fila con el siguiente contenido:

model_namesource_urltarget_urlstate
userhttps://example-gh.source/octocathttps://example-gh.target/monalisarename

Se puede usar el mismo proceso para crear asignaciones para cada registro que admita asignaciones personalizadas. Para más información, vea nuestra tabla sobre las posibles asignaciones de registros.

Aplicar datos de migración modificados

  1. Después de realizar cambios, use el comando scp para aplicar el archivo conflicts.csv modificado (o cualquier otro archivo .csv de asignación en el formato correcto) a la instancia de destino:

    $ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/
  2. Vuelva a asignar los datos de migración con el comando ghe-migrator map, y pase la ruta al archivo .csv modificado y al GUID de migración:

    $ ghe-migrator map -i conflicts.csv  -g MIGRATION_GUID
  3. Si el comando ghe-migrator map -i conflicts.csv -g MIGRATION_GUID notifica que sigue habiendo conflictos, vuelva a ejecutar el proceso de resolución de conflictos de migración.