Esta versão do GitHub Enterprise foi descontinuada em 2021-09-23. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

Preparar-se para migrar dados para a sua empresa

Após gerar um arquivo de migração, você poderá importar os dados para a sua instância de destino do GitHub Enterprise Server. Antes de aplicar as alterações permanentemente na instância de destino, será possível revisá-las para resolver possíveis conflitos.

Preparar os dados migrados para importação para GitHub Enterprise Server

  1. Usando o comando scp, copie o arquivo de migração gerado na organização ou instância de origem para o destino no GitHub Enterprise Server:

    $ scp -P 122 /path/to/archive/MIGRATION_GUID.tar.gz admin@hostname:/home/admin/
  2. Como administrador do site, SSH into your target GitHub Enterprise Server instance.

    $ ssh -p 122 admin@HOSTNAME
  3. Use o comando ghe-migrator prepare para preparar o arquivo para importação na instância de destino e gerar um novo GUID de Migração para uso nas etapas subsequentes:

    ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz
    • Para começar uma nova tentativa de importação, execute o comando ghe-migrator novamente e obtenha um novo GUID de Migração.
    • Para especificar o local em que os arquivos de migração devem ser executados, acrescente o comando com --staging-path=/full/staging/path. O padrão é /data/user/tmp.

Gerar uma lista de conflitos de migração

  1. Usando o comando ghe-migrator conflicts com o GUID de migração, gere um arquivo conflicts.csv:
    $ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv
  2. Se houver conflitos, usando o comando scp, copie conflicts.csv para o seu computador local:
    $ scp -P 122 admin@hostname:conflicts.csv ~/Desktop
  3. Continue em "Resolver conflitos de migração ou configurar mapeamentos personalizados".

Revisar conflitos de migração

  1. Usando o editor de texto ou um software de planilha compatível com CSV, abra o arquivo conflicts.csv.
  2. Seguindo os exemplos e tabelas de referência abaixo, revise o arquivo conflicts.csv para garantir a execução das ações adequadas na importação.

O arquivo conflicts.csv contém um mapa de migração de conflitos e ações recomendadas. O mapa de migração lista quais dados estão sendo migrados da origem e como eles serão aplicados ao destino.

nome_modelourl_origemurl_destinoação_recomendada
usuáriohttps://exemplo-gh.source/octocathttps://exemplo-gh.target/octocatmap
organizaçãohttps://exemplo-gh.source/octo-orghttps://exemplo-gh.target/octo-orgmap
repositóriohttps://exemplo-gh.source/octo-org/widgetshttps://exemplo-gh.target/octo-org/widgetsrename
equipehttps://exemplo-gh.source/orgs/octo-org/teams/adminshttps://exemplo-gh.target/orgs/octo-org/teams/adminsmerge

Cada linha do arquivo conflicts.csv mostra as seguintes informações:

NomeDescrição
nome_modeloTipo de dado que está sendo alterado.
url_origemURL de origem dos dados.
url_destinoURL esperada de destino dos dados.
ação_recomendadaAção preferencial que o ghe-migrator vai executar ao importar os dados.

Mapeamentos possíveis para cada tipo de registro

O ghe-migrator pode executar várias ações de mapeamento diferentes quando transfere os dados:

AçãoDescriçãoModelos aplicáveis
import(padrão) Os dados da origem são importados para o destino.Todos os tipos de registro
mapOs dados da origem são substituídos pelos dados existentes no destino.Usuários, organizações, repositórios
renameOs dados da origem são renomeados e copiados para o destino.Usuários, organizações, repositórios
map_or_renameSe houver destino, mapeie para o destino. Se não houver, renomeie o modelo importado.Usuários
mergeOs dados da origem são combinados com os dados existentes no destino.Equipes

É altamente recomendável que você revise o arquivo conflicts.csv e utilize ghe-migror audit para garantir que as ações adequadas estão sendo tomadas. Se tudo estiver em ordem, você poderá continuar a "Migrar os dados para a sua empresa".

Resolver conflitos de migração ou configurar mapeamentos personalizados

Se achar que o ghe-migrator fará uma alteração incorreta, você poderá fazer correções alterando os dados em conflicts.csv. Você pode alterar qualquer linha no arquivo conflicts.csv.

Por exemplo, digamos que você perceba que o usuário octocat da origem está sendo mapeado para octocat no destino:

nome_modelourl_origemurl_destinoação_recomendada
usuáriohttps://exemplo-gh.source/octocathttps://exemplo-gh.target/octocatmap

Você pode optar por mapear o usuário para outro usuário no destino. Suponha que você saiba que octocat deveria ser monalisa no destino. É possível alterar a coluna url_destino no arquivo conflicts.csv para se referir a monalisa:

nome_modelourl_origemurl_destinoação_recomendada
usuáriohttps://exemplo-gh.source/octocathttps://exemplo-gh.target/monalisamap

Em outra situação, se você quiser renomear o repositório octo-org/widgets como octo-org/amazing-widgets na instância de destino, altere url_destino para octo-org/amazing-widgets e ação_recomendada para rename:

nome_modelourl_origemurl_destinoação_recomendada
repositóriohttps://exemplo-gh.source/octo-org/widgetshttps://exemplo-gh.target/octo-org/amazing-widgetsrename

Adicionar mapeamentos personalizados

Uma situação comum durante as migrações é o cenário em que os usuários migrados têm nomes de usuários diferentes no destino e na origem.

Com uma lista de nomes de usuários da origem e uma lista de nomes de usuários do destino, você pode criar um arquivo CSV com mapeamentos personalizados e aplicá-la para garantir que o nome de usuário e o conteúdo de cada usuário sejam atribuídos corretamente no fim da migração.

Você pode gerar um arquivo em formato CSV dos usuários que estão sendo migrados para aplicar mapeamentos personalizados usando o comando ghe-migrator audit:

$ ghe-migrator audit -m user -g MIGRATION_GUID > users.csv

Agora você pode editar esse CSV, inserir a nova URL para cada usuário que pretende mapear ou renomear e atualizar a quarta coluna para aplicar map ou rename.

Por exemplo, para renomear o usuário octocat como monalisa no destino https://example-gh.target, você deveria criar uma linha com o seguinte conteúdo:

nome_modelourl_origemurl_destinoestado
usuáriohttps://exemplo-gh.source/octocathttps://exemplo-gh.target/monalisarename

O mesmo processo pode ser usado para criar mapeamentos em cada registro compatível com mapeamentos personalizados. Para obter mais informações, consulte a nossa tabela com as possibilidades de mapeamento em registros.

Aplicar dados de migração modificados

  1. Depois de fazer as alterações, use o comando scp para aplicar o seu conflicts.csv modificado (ou qualquer outro arquivo de mapeamento .csv no formato correto) para a instância de destino:

    $ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/
  2. Mapeie novamente os dados de migração usando o comando mapa do ghe-migrator, passando pelo caminho para o seu arquivo .csv modificado e pelo GUID de Migração:

    $ ghe-migrator map -i conflicts.csv  -g MIGRATION_GUID
  3. Se o comando ghe-migrator map -i conflicts.csv -g MIGRATION_GUID ainda reportar conflitos, execute o processo de resolução de conflitos de migração novamente.