Подготовка перенесенных данных к импорту в GitHub Enterprise Server
-
С помощью команды
scp
скопируйте архив миграции, созданный из исходного экземпляра или организации, в целевой объект GitHub Enterprise Server:$ scp -P 122 PATH-TO-MIGRATION-GUID.tar.gz admin@HOSTNAME:/home/admin/
-
Как администратор сайта подключите SSH к целевому экземпляру GitHub Enterprise Server.
$ ssh -p 122 admin@HOSTNAME
-
Используйте команду
ghe-migrator prepare
, чтобы подготовить архив для импорта в целевой экземпляр и создать новый уникальный идентификатор миграции, который будет использоваться в последующих шагах:ghe-migrator prepare /home/admin/MIGRATION-GUID.tar.gz
- Чтобы начать новую попытку импорта, запустите
ghe-migrator prepare
еще раз и получите новый уникальный идентификатор миграции. - Чтобы указать, где следует выполнить подготовку файлов миграции, добавьте команду с
--staging-path=/full/staging/path
. По умолчанию —/data/user/tmp
.
- Чтобы начать новую попытку импорта, запустите
Создание списка конфликтов миграции
- Используя команду
ghe-migrator conflicts
с уникальным идентификатором миграции, создайте файл conflicts.csv:$ ghe-migrator conflicts -g MIGRATION-GUID > conflicts.csv
- Если о конфликтах не сообщается, вы можете безопасно импортировать данные, выполнив действия, описанные в разделе "Migrating data to GitHub Enterprise Server".
- При наличии конфликтов с помощью команды
scp
скопируйте conflicts.csv на локальный компьютер:$ scp -P 122 admin@HOSTNAME:conflicts.csv ~/Desktop
- Перейдите к разделу Устранение конфликтов миграции или настройка пользовательских сопоставлений.
Просмотр конфликтов миграции
- Откройте conflicts.csv с помощью текстового редактора или программного обеспечения для работы с электронными таблицами, совместимого с форматом CSV.
- Руководствуясь приведенными ниже примерами и справочными таблицами, просмотрите файл conflicts.csv, чтобы убедиться, что при импорте будут выполнены соответствующие действия.
Файл conflicts.csv содержит карту миграции конфликтов и рекомендуемые действия. Карта миграции содержит сведения о том, какие данные переносятся из источника и как данные будут применены к целевому объекту.
model_name | source_url | target_url | recommended_action |
---|---|---|---|
user | https://example-gh.source/octocat | https://example-gh.target/octocat | map |
organization | https://example-gh.source/octo-org | https://example-gh.target/octo-org | map |
repository | https://example-gh.source/octo-org/widgets | https://example-gh.target/octo-org/widgets | rename |
team | https://example-gh.source/orgs/octo-org/teams/admins | https://example-gh.target/orgs/octo-org/teams/admins | merge |
Каждая строка в conflicts.csv предоставляет следующие сведения:
Имя | Описание |
---|---|
model_name | Тип изменяемых данных. |
source_url | Исходный URL-адрес данных. |
target_url | Ожидаемый целевой URL-адрес данных. |
recommended_action | Предпочтительное действие, которое выполнит ghe-migrator при импорте данных. |
Возможные сопоставления для каждого типа записи
Существует несколько различных действий сопоставления, которые ghe-migrator
может выполнить при передаче данных:
action | Описание | Применимые модели |
---|---|---|
import | (по умолчанию) Данные из источника импортируются в целевой объект. | Все типы записей |
map | Данные из источника заменяются существующими данными в целевом объекте. | Пользователи, организации |
rename | Данные из источника переименовываются, а затем копируются в целевой объект. | Пользователи, организации, репозитории |
map_or_rename | Если целевой объект существует, данные сопоставляются с ним. В противном случае импортированная модель переименовывается. | Пользователи |
merge | Данные из источника совмещаются с существующими данными в целевом объекте. | Teams |
Мы настоятельно рекомендуем просмотреть файл conflicts.csv и использовать ghe-migrator audit
, чтобы убедиться, что выполняются нужные действия. Если все выглядит хорошо, можно перейти к autoTITLE.
Устранение конфликтов миграции или настройка пользовательских сопоставлений
Если вы считаете, что ghe-migrator
выполнит неправильное изменение, можно внести исправления, изменив данные в conflicts.csv. Вы можете внести изменения в любую из строк в conflicts.csv.
Например, предположим, что вы заметили octocat
, что пользователь из источника сопоставляется с octocat
целевым объектом.
model_name | source_url | target_url | recommended_action |
---|---|---|---|
user | https://example-gh.source/octocat | https://example-gh.target/octocat | map |
Вы можете сопоставить пользователя с другим пользователем в целевом объекте. Предположим, вы знаете, что octocat
на самом деле должен быть monalisa
в целевом объекте. Столбец в conflicts.csv можно изменить target_url
для ссылки на .monalisa
model_name | source_url | target_url | recommended_action |
---|---|---|---|
user | https://example-gh.source/octocat | https://example-gh.target/monalisa | map |
В качестве другого примера, если вы хотите переименовать репозиторий на в целевом экземпляре, измените target_url
octo-org/amazing-widgets
на , а на rename``recommend_action
.octo-org/widgets
octo-org/amazing-widgets
model_name | source_url | target_url | recommended_action |
---|---|---|---|
repository | https://example-gh.source/octo-org/widgets | https://example-gh.target/octo-org/amazing-widgets | rename |
Добавление пользовательских сопоставлений
Распространенный сценарий во время миграции заключается в том, что у имена перенесенных пользователей в целевом объекте будут отличаться от тех, что назначены им в источнике.
Имея список имен пользователей в источнике и список имен пользователей в целевом объекте, вы можете создать CSV-файл с пользовательскими сопоставлениями, а затем применить его, чтобы имена пользователей и их данные были правильно сопоставлены после миграции.
Вы можете быстро создать CSV-файл пользователей, которые переносятся. Он необходим для применения пользовательских сопоставлений с помощью команды ghe-migrator audit
:
$ ghe-migrator audit -m user -g MIGRATION-GUID > users.csv
Теперь вы можете изменить этот CSV-файл и ввести новый URL-адрес для каждого пользователя, которого вы хотите сопоставить или переименовать, а затем обновить четвертый столбец, чтобы выполнить map
или rename
.
Например, чтобы переименовать пользователя octocat
в monalisa
в целевом объекте https://example-gh.target
создайте строку со следующим содержимым:
model_name | source_url | target_url | state |
---|---|---|---|
user | https://example-gh.source/octocat | https://example-gh.target/monalisa | rename |
Один и тот же процесс можно использовать для создания сопоставлений для каждой записи, поддерживающей пользовательские сопоставления. Дополнительные сведения см. в таблице возможных сопоставлений записей.
Применение измененных данных миграции
-
После внесения изменений используйте команду
scp
для применения измененного файла conflicts.csv (или любого другого файла .csv сопоставлений в правильном формате) к целевому экземпляру:$ scp -P 122 ~/Desktop/conflicts.csv admin@HOSTNAME:/home/admin/
-
Повторно сопоставите данные миграции с помощью команды
ghe-migrator map
, передав путь к измененным файлу .csv и уникальному идентификатору миграции:$ ghe-migrator map -i conflicts.csv -g MIGRATION-GUID
-
Если команда
ghe-migrator map -i conflicts.csv -g MIGRATION-GUID
сообщит, что конфликты по-прежнему существуют, снова выполните процесс разрешения конфликтов миграции.