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 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
.
- 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 conflicts
com 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
scp
para aplicar seu arquivo conflicts.csv modificado (ou qualquer outro csv de mapeamento no formato correto) à instância de destino:$ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/
-
Remapeie os dados de migração usando o comando
ghe-migrator map
, passando pelo caminho do seu arquivo csv modificado e do GUID de Migração:$ ghe-migrator map -i conflicts.csv -g MIGRATION_GUID
-
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.