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

Миграция данных на предприятие

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

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

Перед миграцией данных на предприятие необходимо подготовить данные и устранить любые конфликты. Дополнительные сведения см. в разделе Подготовка к переносу данных в ваше предприятие.

После подготовки данных и разрешения конфликтов можно применить импортированные данные к GitHub Enterprise Server.

  1. Как администратор сайта подключите SSH к целевому экземпляру GitHub Enterprise Server.

    $ ssh -p 122 admin@HOSTNAME
  2. С помощью команды ghe-migrator import запустите процесс импорта. Что вам понадобится:

    $ ghe-migrator import /home/admin/MIGRATION-GUID.tar.gz -g MIGRATION-GUID -u USERNAME -p TOKEN
    
    > Starting GitHub::Migrator
    > Import 100% complete /
    • Чтобы указать, где следует выполнить подготовку файлов миграции, добавьте команду с --staging-path=/full/staging/path. По умолчанию — /data/user/tmp.

Проверка данных миграции

По умолчанию ghe-migrator audit возвращает каждую запись. Кроме того, это позволяет фильтровать записи по следующим критериям:

  • Типы записей.
  • Состояние записей.

Типы записей соответствуют тем, которые находятся в перенесенных данных.

Фильтры типов записей

Тип записиИмя фильтра
Пользователиuser
Организацииorganization
Репозиторииrepository
Teamsteam
Вехиmilestone
Панели проектовproject
Проблемыissue
Комментарии к проблемеissue_comment
Запросы на вытягиваниеpull_request
Проверки запросов на включение измененийpull_request_review
Комментарии фиксацииcommit_comment
Комментарии к проверке запроса на вытягиваниеpull_request_review_comment
Выпускиrelease
Действия, выполняемые для запросов на вытягивание или проблемissue_event
Защищенные ветвиprotected_branch

Фильтры состояния записи

Состояние записиОписание
exportЗапись будет экспортирована.
importЗапись будет импортирована.
mapЗапись будет сопоставлена.
renameЗапись будет сопоставлена.
mergeЗапись будет объединена.
exportedЗапись экспортирована успешно.
importedЗапись импортирована успешно.
mappedЗапись сопоставлена успешно.
renamedЗапись переименована успешно.
mergedЗапись объединена успешно.
failed_exportНе удалось экспортировать запись.
failed_importНе удалось импортировать запись.
failed_mapНе удалось сопоставить запись.
failed_renameНе удалось переименовать запись.
failed_mergeНе удалось объединить запись.

Фильтрация записей аудита

С помощью команды ghe-migrator audit можно отфильтровать данные по типу записи с помощью флага -m. Аналогичным образом можно отфильтровать состояние импорта с помощью флага -s. Эта команда выглядит следующим образом:

$ ghe-migrator audit -m RECORD_TYPE -s STATE -g MIGRATION-GUID

Например, чтобы просмотреть каждую успешно импортированную организацию и команду, необходимо ввести следующее:

$ ghe-migrator audit -m organization,team -s mapped,renamed -g MIGRATION-GUID
> model_name,source_url,target_url,state
> organization,https://gh.source/octo-org/,https://ghe.target/octo-org/,renamed

Настоятельно рекомендуется проводить аудит каждой операции импорта, завершившейся сбоем. Для этого введите:

$ ghe-migrator audit -s failed_import,failed_map,failed_rename,failed_merge -g MIGRATION-GUID
> model_name,source_url,target_url,state
> user,https://gh.source/octocat,https://gh.target/octocat,failed
> repository,https://gh.source/octo-org/octo-project,https://ghe.target/octo-org/octo-project,failed

Если у вас возникли проблемы с ошибками импорта, обратитесь к Поддержка GitHub Enterprise.

Завершение импорта в GitHub Enterprise Server

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

Разблокировка репозиториев на целевом экземпляре

  1. Подключение по протоколу SSH к экземпляр GitHub Enterprise Server. Если экземпляр состоит из нескольких узлов, например, если настроен высокий уровень доступности или георепликация, передача осуществляется по SSH в основной узел. При использовании кластера можно использовать для передачи по SSH в любой узел. Дополнительные сведения о доступе к SSH см. в разделе Доступ к административной оболочке (SSH).

    $ ssh -p 122 admin@HOSTNAME
    1. Разблокируйте все импортированные репозитории с помощью команды `ghe-migrator unlock`. Вам потребуется GUID миграции:
    $ ghe-migrator unlock -g MIGRATION-GUID
    > Unlocked octo-org/octo-project

Разблокировка репозиториев в источнике

Разблокировка репозиториев из организации в GitHub.com

Чтобы разблокировать репозитории в организации GitHub.com, отправьте запрос DELETE в конечную точку разблокировки миграции. Что вам понадобится:

  • Маркер доступа для проверки подлинности
  • Уникальный id миграции
  • Имя репозитория для разблокировки
curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \
  -H "Accept: application/vnd.github.wyandotte-preview+json" \
  https://api.github.com/orgs/ORG-NAME/migrations/ID/repos/REPO_NAME/lock

Удаление репозиториев из организации в GitHub.com

После разблокировки репозиториев организации GitHub.com следует удалить каждый репозиторий, перенесенный ранее с помощью конечной точки удаления репозитория. Вам потребуется маркер доступа для проверки подлинности

curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \
  https://api.github.com/repos/ORG-NAME/REPO_NAME

Разблокировка репозиториев из экземпляра GitHub Enterprise Server

  1. Подключение по протоколу SSH к экземпляр GitHub Enterprise Server. Если экземпляр состоит из нескольких узлов, например, если настроен высокий уровень доступности или георепликация, передача осуществляется по SSH в основной узел. При использовании кластера можно использовать для передачи по SSH в любой узел. Дополнительные сведения о доступе к SSH см. в разделе Доступ к административной оболочке (SSH).

    $ ssh -p 122 admin@HOSTNAME
    1. Разблокируйте все импортированные репозитории с помощью команды `ghe-migrator unlock`. Вам потребуется GUID миграции:
    $ ghe-migrator unlock -g MIGRATION-GUID
    > Unlocked octo-org/octo-project