# Exportando dados de migração do GitHub Enterprise Server

Para alterar plataformas ou passar de uma instância de avaliação para uma instância de produção, você pode exportar dados de migração de uma GitHub Enterprise Server instância preparando a instância, bloqueando os repositórios e gerando um arquivo morto de migração.

## Preparando a instância de origem GitHub Enterprise Server

1. Verifique se você é um administrador de site na origem GitHub Enterprise Server . A melhor maneira de fazer isso é verificar se você pode [entrar na instância com o SSH](/pt/enterprise-server@3.22/admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh).

2. [Gerar um token de acesso](/pt/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) com os escopos `repo` e `admin:org` na instância de origem GitHub Enterprise Server .

3. Para minimizar o tempo de inatividade, faça uma lista de repositórios que você deseja exportar a partir da instância de origem. É possível adicionar vários repositórios a uma exportação de uma vez usando um arquivo de texto que lista a URL de cada repositório em uma linha separada.

## Exportando os repositórios de origem GitHub Enterprise Server

> \[!NOTE]
> Bloquear um repositório impede todo o acesso de gravação a ele. Não é possível associar novas equipes ou colaboradores a um repositório bloqueado.
>
> Se você estiver realizando uma execução de teste, você não precisará bloquear o repositório. Quando você migra dados de um repositório que está em uso, o GitHub recomenda o bloqueio do repositório. Para saber mais, confira [Sobre o ghe-migrator](/pt/migrations/using-ghe-migrator/about-ghe-migrator#types-of-migrations).

1. SSH em GitHub.com. Se sua instância for composta por vários nós, por exemplo, se a alta disponibilidade ou a replicação geográfica estiver configurada, efetue SSH no nó primário. Se você usar um cluster, poderá efetuar SSH em qualquer nó. Substitua HOSTNAME pelo nome do host da instância ou pelo nome do host ou endereço IP de um nó. Para saber mais, confira [Acessar o shell administrativo (SSH)](/pt/enterprise-server@3.22/admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh).

   ```shell copy
   ssh -p 122 admin@HOSTNAME
   ```

2. Para preparar um repositório para exportação, use o comando `ghe-migrator add` com a URL do repositório:
   * Se estiver bloqueando o repositório, acrescente `--lock` ao comando. Se estiver fazendo um teste, `--lock` não é necessário.

     ```shell
     ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock
     ```

   * Você pode excluir anexos de arquivo acrescentando `--exclude_attachments` ao comando. Anexos de arquivos podem ser grandes e gerar um volume desnecessário no seu arquivo de migração final.

   * Para preparar a exportação de vários repositórios de uma só vez, crie um arquivo de texto listando cada URL do repositório em uma linha separada e execute o comando `ghe-migrator add` com o sinalizador `-i` e o caminho para seu arquivo de texto.

     ```shell
     ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
     ```

3. Quando solicitado, insira seu GitHub Enterprise Server nome de usuário:

   ```shell
   Enter username authorized for migration:  admin
   ```

4. Quando solicitado, personal access tokeninsira o token de acesso que você criou na [preparação da instância de origemGitHub Enterprise Server](#preparing-the-github-enterprise-server-source-instance):

   ```shell
   Enter personal access token:  **************
   ```

5. Após a conclusão do `ghe-migrator add`, ele imprimirá o "GUID de Migração" exclusivo gerado para identificar a exportação e uma lista dos recursos adicionados à exportação. Você usará o GUID de Migração gerado nas etapas seguintes `ghe-migrator add` e `ghe-migrator export` para informar o `ghe-migrator` para continuar operando na mesma exportação.

   ```shell
   > 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
   ```

   Sempre que você adicionar um novo repositório com o GUID de Migração atual, ele atualizará a exportação atual. Se você executar `ghe-migrator add` novamente sem o GUID de Migração, ele vai iniciar uma nova exportação e gerar um novo GUID de Migração.
   **Não reutilize o GUID de Migração gerado durante uma exportação quando você começar a preparar a migração para importação**.

6. Para adicionar mais repositórios à mesma exportação, use o comando `ghe-migrator add` com o sinalizador `-g`. Informe a nova URL do repositório e o GUID de Migração da Etapa 5:

   ```shell
   ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock
   ```

7. Quando terminar de adicionar repositórios, gere o arquivo de migração usando o comando `ghe-migrator export` com o sinalizador `-g` e o GUID de Migração da Etapa 5:

   ```shell
   $ ghe-migrator export -g MIGRATION-GUID
   > Archive saved to: /data/github/current/tmp/MIGRATION-GUID.tar.gz
   ```

   * Para especificar o local em que os arquivos de migração devem ser preparados, acrescente `--staging-path=/full/staging/path` ao comando. Assume o padrão de `/data/user/tmp`.

8. Feche a conexão com GitHub.com:

   ```shell
   $ exit
   > logout
   > Connection to HOSTNAME closed.
   ```

9. Copie o arquivo de migração para o computador usando o comando [`scp`](https://acloudguru.com/blog/engineering/ssh-and-scp-howto-tips-tricks#scp). O arquivo terá o nome do GUID de Migração:

   ```shell
   scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop
   ```

10. Para preparar os dados de migração arquivados para importação para uma instância do GitHub Enterprise Server, confira [Migrando dados para GitHub Enterprise Server](/pt/migrations/using-ghe-migrator/migrating-data-to-github-enterprise-server#preparing-the-migrated-data).