Skip to main content

Esta versão do GitHub Enterprise será descontinuada em 2022-10-12. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

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 da sua instância de origem ou da organização para o destino do GitHub Enterprise Server:

    $ scp -P 122 /path/to/archive/MIGRATION_GUID.tar.gz admin@hostname:/home/admin/
  2. Como administrador do site, use o SSH para entrar na sua instância do GitHub Enterprise Server.

    $ 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 você usar nas etapas seguintes:

    ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz
    • Para iniciar uma nova tentativa de importação, execute ghe-migrator prepare novamente e obtenha um novo GUID de Migração.
    • 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.

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 computador local:
    $ scp -P 122 admin@hostname:conflicts.csv ~/Desktop
  3. Prossiga para "Como resolver conflitos de migração ou configurar mapeamentos personalizados".

Revisar conflitos de migração

  1. Usando um editor de texto ou um software de planilha compatível com CSV, abra conflicts.csv.
  2. Com as diretrizes dos exemplos e das tabelas de referência abaixo, revise o arquivo conflicts.csv para garantir que as ações adequadas sejam tomadas após a 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.

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 linha do conflicts.csv fornece as seguintes informações:

NomeDescrição
model_nameTipo de dado que está sendo alterado.
source_urlURL de origem dos dados.
target_urlURL esperada de destino dos dados.
recommended_actionA ação preferencial ghe-migrator será tomada ao importar os dados.

Mapeamentos possíveis para cada tipo de registro

Há várias ações de mapeamento diferentes que o ghe-migrator pode executar ao transferir os dados:

actionDescriçã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.Teams

Sugerimos que você revise o arquivo conflicts.csv e use ghe-migrator audit para garantir que as ações adequadas sejam executadas. Se tudo estiver bem, prossiga para "Como migrar dados para sua empresa".

Resolver conflitos de migração ou configurar mapeamentos personalizados

Se você acredita que o ghe-migrator executará uma alteração incorreta, faça correções alterando os dados em conflicts.csv. Faça alterações em uma das linhas do conflicts.csv.

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

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

Você pode optar por mapear o usuário para outro usuário no destino. Suponha que você saiba que octocat deve realmente ser monalisa no destino. Altere a coluna target_url em conflicts.csv para que ela se refira a monalisa:

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

Como outro exemplo, caso deseje renomear o repositório octo-org/widgets como octo-org/amazing-widgets na instância de destino, altere a target_url para octo-org/amazing-widgets e a recommend_action para rename:

model_namesource_urltarget_urlrecommended_action
repositoryhttps://example-gh.source/octo-org/widgetshttps://example-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 rapidamente um CSV de usuários que estão sendo migrados no formato CSV necessário para aplicar os mapeamentos personalizados usando o comando ghe-migrator audit:

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

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

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

model_namesource_urltarget_urlstate
userhttps://example-gh.source/octocathttps://example-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, confira nossa tabela sobre os possíveis mapeamentos para registros.

Aplicar dados de migração modificados

  1. Depois de fazer alterações, use o comando scp para aplicar o conflicts.csv modificado (ou qualquer outro arquivo .csv de mapeamento no formato correto) à 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 ghe-migrator map, transmitindo o caminho para o arquivo .csv modificado e o 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 relatar que ainda há conflitos, execute o processo de resolução de conflitos de migração novamente.