Skip to main content

Esta versión de GitHub Enterprise se discontinuará el 2022-10-12. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Exportar los datos de migración de tu empresa

Para cambiar las plataformas o migrarse de una instancia de pruebas a una productiva, puedes exportar los datos de migración de una instancia de GitHub Enterprise Server si preparas la instancia, bloqueas los repositorios, y generas un archivo de migración.

Preparar la instancia origen de GitHub Enterprise Server

  1. Verifica que eres un administrador del sitio en el origen GitHub Enterprise Server. La mejor manera de hacerlo es comprobar que puedes conectarte mediante SSH a la instancia.

  2. Generación de un token de acceso con los ámbitos repo y admin:org en la instancia de origen GitHub Enterprise Server.

  3. Para minimizar los tiempos de inactividad, haz una lista de repositorios que deseas exportar desde la instancia de origen. Puedes agregar múltiples repositorios a una exportación a la vez usando un archivo de texto que muestra la URL de cada repositorio en una línea separada.

Exportar los repositorios origen de GitHub Enterprise Server

Nota: El bloqueo de un repositorio impedirá todos los accesos de escritura al mismo. No puedes asociar equipos o colaboradores nuevos con un repositorio bloqueado.

Si estás llevando a cabo una ejecución de prueba, no necesitas bloquear el repositorio. Al migrar datos de un repositorio que está en uso, GitHub recomienda encarecidamente bloquear el repositorio. Para más información, vea "Acerca de las migraciones".

  1. SSH en your GitHub Enterprise Server instance. Si la instancia consta de varios nodos, por ejemplo, si la alta disponibilidad o la replicación geográfica están configuradas, utiliza SSH en el nodo principal. Si usas un clúster, puedes utilizar SSH en cualquier nodo. Para obtener más información acerca del acceso a SSH, consulta "Acceso al shell administrativo (SSH)".

    $ ssh -p 122 admin@HOSTNAME
  2. Para preparar un repositorio para la exportación, usa el comando ghe-migrator add con la dirección URL del repositorio:

    • Si estás bloqueando el repositorio, anexa el comando con --lock. Si vas a realizar una ejecución de prueba, --lock no es necesario.
      $ ghe-migrator add https://hostname/username/reponame --lock
    • Puedes excluir los datos adjuntos de archivo anexando --exclude_attachments al comando. Los archivos adjuntos pueden resultar muy grandes y es posible que sobrecarguen tu archivo de migración final de manera innecesaria.
    • Para preparar varios repositorios a la vez para la exportación, crea un archivo de texto que muestre cada dirección URL del repositorio en una línea y ejecuta el comando ghe-migrator add con la marca -i y la ruta de acceso al archivo de texto.
      $ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URLS.txt
  3. Cuando se te indique, ingresa tu nombre de usuario GitHub Enterprise Server:

    Enter username authorized for migration:  admin
  4. Cuando se te solicite un token de acceso personal, escribe el token de acceso que creaste en "Preparación de la instancia de origen de GitHub Enterprise Server":

    Enter personal access token:  **************
  5. Cuando haya terminado ghe-migrator add, se imprimirá el único "GUID de migración" que se generó para identificar esta exportación, así como una lista de los recursos que se agregaron a la exportación. Usarás el GUID de migración generado en los pasos ghe-migrator add y ghe-migrator export posteriores para indicar a ghe-migrator que siga funcionando en la misma exportación.

    > 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

    Cada vez que agregues un repositorio nuevo con un GUID de migración existente, se actualizará la exportación existente. Si vuelves a ejecutar ghe-migrator add sin un GUID de migración, se iniciará una nueva exportación y se generará un nuevo GUID de migración. No vuelvas a utilizar el GUID de migración generado durante una exportación cuando comiences a preparar tu migración para la importación.

  6. Si bloqueaste el repositorio de origen, puedes usar el comando ghe-migrator target_url para establecer un mensaje de bloqueo personalizado en la página del repositorio que vincula a la nueva ubicación del repositorio. Pasa la URL del repositorio de origen, la URL del repositorio de destino y el GUID de migración del Paso 5:

    $ ghe-migrator target_url https://hostname/username/reponame https://target_hostname/target_username/target_reponame -g MIGRATION_GUID
  7. Para agregar más repositorios a la misma exportación, usa el comando ghe-migrator add con la marca -g. Pasarás la nueva URL del repositorio y el GUID de migración del Paso 5:

    $ ghe-migrator add https://hostname/username/other_reponame -g MIGRATION_GUID --lock
  8. Cuando hayas terminado de agregar repositorios, genera el archivo de migración mediante el comando ghe-migrator export con la marca -g y el GUID de migración del paso 5:

    $ ghe-migrator export -g MIGRATION_GUID
    > Archive saved to: /data/github/current/tmp/MIGRATION_GUID.tar.gz
    • 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.
  9. Cierra la conexión a your GitHub Enterprise Server instance:

    $ exit
    > logout
    > Connection to hostname closed.
  10. Copia el archivo de migración en el equipo mediante el comando scp. Se te asignará al archivo de almacenamiento un nombre con el GUID de migración:

    $ scp -P 122 admin@hostname:/data/github/current/tmp/MIGRATION_GUID.tar.gz ~/Desktop
  11. A fin de preparar los datos de migración archivados para la importación en una instancia de GitHub Enterprise Server, vea "Preparación para migrar datos a la empresa".