Preparar os dados migrados para importação para GitHub Enterprise Server
-
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/ -
Como administrador do site, SSH into your target GitHub Enterprise Server instance.
$ ssh -p 122 admin@HOSTNAME -
Use o comando
ghe-migrator preparepara 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-migratornovamente 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.
- Para começar uma nova tentativa de importação, execute o comando
Gerar uma lista de conflitos de migração
- Usando o comando
ghe-migrator conflictscom o GUID de migração, gere um arquivo conflicts.csv:$ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv- Se nenhum conflito for relatado, você poderá importar os dados com segurança seguindo as etapas em "Migrar dados para a sua empresa".
- Se houver conflitos, usando o comando
scp, copie conflicts.csv para o seu computador local:$ scp -P 122 admin@hostname:conflicts.csv ~/Desktop - Continue em "Resolver conflitos de migração ou configurar mapeamentos personalizados".
Revisar conflitos de migração
- Usando o editor de texto ou um software de planilha compatível com CSV, abra o arquivo conflicts.csv.
- 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_modelo | url_origem | url_destino | ação_recomendada |
|---|---|---|---|
usuário | https://exemplo-gh.source/octocat | https://exemplo-gh.target/octocat | map |
organização | https://exemplo-gh.source/octo-org | https://exemplo-gh.target/octo-org | map |
repositório | https://exemplo-gh.source/octo-org/widgets | https://exemplo-gh.target/octo-org/widgets | rename |
equipe | https://exemplo-gh.source/orgs/octo-org/teams/admins | https://exemplo-gh.target/orgs/octo-org/teams/admins | merge |
Cada linha do arquivo conflicts.csv mostra as seguintes informações:
| Nome | Descrição |
|---|---|
nome_modelo | Tipo de dado que está sendo alterado. |
url_origem | URL de origem dos dados. |
url_destino | URL esperada de destino dos dados. |
ação_recomendada | Açã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ção | Descrição | Modelos aplicáveis |
|---|---|---|
import | (padrão) Os dados da origem são importados para o destino. | Todos os tipos de registro |
map | Os dados da origem são substituídos pelos dados existentes no destino. | Usuários, organizações, repositórios |
rename | Os dados da origem são renomeados e copiados para o destino. | Usuários, organizações, repositórios |
map_or_rename | Se houver destino, mapeie para o destino. Se não houver, renomeie o modelo importado. | Usuários |
merge | Os 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_modelo | url_origem | url_destino | ação_recomendada |
|---|---|---|---|
usuário | https://exemplo-gh.source/octocat | https://exemplo-gh.target/octocat | map |
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_modelo | url_origem | url_destino | ação_recomendada |
|---|---|---|---|
usuário | https://exemplo-gh.source/octocat | https://exemplo-gh.target/monalisa | map |
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_modelo | url_origem | url_destino | ação_recomendada |
|---|---|---|---|
repositório | https://exemplo-gh.source/octo-org/widgets | https://exemplo-gh.target/octo-org/amazing-widgets | rename |
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_modelo | url_origem | url_destino | estado |
|---|---|---|---|
usuário | https://exemplo-gh.source/octocat | https://exemplo-gh.target/monalisa | rename |
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
-
Depois de fazer as alterações, use o comando
scppara 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/ -
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 -
Se o comando
ghe-migrator map -i conflicts.csv -g MIGRATION_GUIDainda reportar conflitos, execute o processo de resolução de conflitos de migração novamente.