Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

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, 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/
  2. Como administrador de sitio, Entra por SSH en tu instancia destino de GitHub Enterprise Server.

    $ ssh -p 122 admin@HOSTNAME
  3. 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.

Generar una lista de conflictos de migración

  1. 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
    • Si no se reporta conflicto alguno, puedes importar los datos de forma segura siguiendo los pasos en la sección "Migrar datos a tu empresa".
  2. Si hay conflictos, con el comando scp, copia conflicts.csv a tu computadora local:
    $ scp -P 122 admin@hostname:conflicts.csv ~/Desktop
  3. Continúa con "Resolver conflictos de migración o crear asignaciones personalizadas".

Revisar conflictos de migración

  1. Con un editor de texto o un software de hoja de cálculo compatible con CSV, abre conflicts.csv.
  2. 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.

nombre_modelourl_origenurl_destinorecommended_action
usuariohttps://example-gh.source/octocatchttps://example-gh.target/octocatmap
organizationhttps://example-gh.source/octo-orghttps://example-gh.target/octo-orgmap
repositoriohttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/widgetsrename (renombrar)
equipohttps://example-gh.source/orgs/octo-org/teams/adminshttps://example-gh.target/orgs/octo-org/teams/adminsfusionar

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

NombreDescripción
nombre_modeloEl tipo de datos que se están cambiando.
url_origenLa URL fuente de los datos.
url_destinoLa URL de destino esperada de los datos.
recommended_actionLa 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ónDescripciónModelos aplicables
importar(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
rename (renombrar)Los datos del origen se renombran y luego se copian en el destino.Usuarios, organizaciones, repositorios
asignar_o_renombrarSi el destino existe, asignar a ese destino. De lo contrario, renombrar el modelo importado.Usuarios
fusionarLos datos del origen se combinan con los datos existentes en el destino.Equipos

Te recomendamos ampliamente que revises el archivo conflicts.csv y que utilices ghe-migrator audit para garantizar que se estén tomando las acciones adecuadas. Si todo se ve bien, puedes continuar con las acciones para "Migrar los datos a tu empresa".

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_modelourl_origenurl_destinorecommended_action
usuariohttps://example-gh.source/octocatchttps://example-gh.target/octocatmap

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:

nombre_modelourl_origenurl_destinorecommended_action
usuariohttps://example-gh.source/octocatchttps://example-gh.target/monalisamap

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:

nombre_modelourl_origenurl_destinorecommended_action
repositoriohttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/amazing-widgetsrename (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:

nombre_modelourl_origenurl_destinostate
usuariohttps://example-gh.source/octocatchttps://example-gh.target/monalisarename (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

  1. Después de hacer los cambios, utiliza el comando scp para aplicar tu conflicts.csv modificado (o cualquier otro archivo de mapeo .csv en el formato correcto) a la instancia destino:

    $ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/
  2. Vuelve a mapear los datos de la migración utilizando el comando ghe-migrator map, pasando la ruta a tu archivo .csv modificado y a la GUID de la migración:

    $ ghe-migrator map -i conflicts.csv  -g MIGRATION_GUID
  3. 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.