Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Подготовка к переносу данных на GitHub Enterprise Server

После создания архива миграции данные можно импортировать в целевой экземпляр GitHub Enterprise Server. Вы сможете просмотреть изменения для потенциальных конфликтов, прежде чем окончательно применить изменения к целевому экземпляру.

Подготовка перенесенных данных к импорту в GitHub Enterprise Server

  1. С помощью команды scp скопируйте архив миграции, созданный из исходного экземпляра или организации, в целевой объект GitHub Enterprise Server:

    $ scp -P 122 PATH-TO-MIGRATION-GUID.tar.gz admin@HOSTNAME:/home/admin/
  2. Как администратор сайта подключите SSH к целевому экземпляру GitHub Enterprise Server.

    $ ssh -p 122 admin@HOSTNAME
  3. Используйте команду ghe-migrator prepare, чтобы подготовить архив для импорта в целевой экземпляр и создать новый уникальный идентификатор миграции, который будет использоваться в последующих шагах:

    ghe-migrator prepare /home/admin/MIGRATION-GUID.tar.gz
    • Чтобы начать новую попытку импорта, запустите ghe-migrator prepare еще раз и получите новый уникальный идентификатор миграции.
    • Чтобы указать, где следует выполнить подготовку файлов миграции, добавьте команду с --staging-path=/full/staging/path. По умолчанию — /data/user/tmp.

Создание списка конфликтов миграции

  1. Используя команду ghe-migrator conflicts с уникальным идентификатором миграции, создайте файл conflicts.csv:
    $ ghe-migrator conflicts -g MIGRATION-GUID > conflicts.csv
    • Если о конфликтах не сообщается, вы можете безопасно импортировать данные, выполнив действия, описанные в разделе "Migrating data to GitHub Enterprise Server".
  2. При наличии конфликтов с помощью команды scp скопируйте conflicts.csv на локальный компьютер:
    $ scp -P 122 admin@HOSTNAME:conflicts.csv ~/Desktop
  3. Перейдите к разделу Устранение конфликтов миграции или настройка пользовательских сопоставлений.

Просмотр конфликтов миграции

  1. Откройте conflicts.csv с помощью текстового редактора или программного обеспечения для работы с электронными таблицами, совместимого с форматом CSV.
  2. Руководствуясь приведенными ниже примерами и справочными таблицами, просмотрите файл conflicts.csv, чтобы убедиться, что при импорте будут выполнены соответствующие действия.

Файл conflicts.csv содержит карту миграции конфликтов и рекомендуемые действия. Карта миграции содержит сведения о том, какие данные переносятся из источника и как данные будут применены к целевому объекту.

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

Каждая строка в 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_namesource_urltarget_urlrecommended_action
userhttps://example-gh.source/octocathttps://example-gh.target/octocatmap

Вы можете сопоставить пользователя с другим пользователем в целевом объекте. Предположим, вы знаете, что octocat на самом деле должен быть monalisa в целевом объекте. Столбец в conflicts.csv можно изменить target_url для ссылки на .monalisa

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

В качестве другого примера, если вы хотите переименовать репозиторий на в целевом экземпляре, измените target_url octo-org/amazing-widgets на , а на rename``recommend_action .octo-org/widgets octo-org/amazing-widgets

model_namesource_urltarget_urlrecommended_action
repositoryhttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/amazing-widgetsrename

Добавление пользовательских сопоставлений

Распространенный сценарий во время миграции заключается в том, что у имена перенесенных пользователей в целевом объекте будут отличаться от тех, что назначены им в источнике.

Имея список имен пользователей в источнике и список имен пользователей в целевом объекте, вы можете создать 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_namesource_urltarget_urlstate
userhttps://example-gh.source/octocathttps://example-gh.target/monalisarename

Один и тот же процесс можно использовать для создания сопоставлений для каждой записи, поддерживающей пользовательские сопоставления. Дополнительные сведения см. в таблице возможных сопоставлений записей.

Применение измененных данных миграции

  1. После внесения изменений используйте команду scp для применения измененного файла conflicts.csv (или любого другого файла .csv сопоставлений в правильном формате) к целевому экземпляру:

    $ scp -P 122 ~/Desktop/conflicts.csv admin@HOSTNAME:/home/admin/
  2. Повторно сопоставите данные миграции с помощью команды ghe-migrator map, передав путь к измененным файлу .csv и уникальному идентификатору миграции:

    $ ghe-migrator map -i conflicts.csv  -g MIGRATION-GUID
  3. Если команда ghe-migrator map -i conflicts.csv -g MIGRATION-GUID сообщит, что конфликты по-прежнему существуют, снова выполните процесс разрешения конфликтов миграции.