Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2024-09-25. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Экспорт данных миграции с GitHub Enterprise Server

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

Подготовка исходного экземпляра GitHub Enterprise Server

  1. Убедитесь, что вы являетесь администратором сайта в источнике GitHub Enterprise Server. Лучший способ сделать это — обеспечить возможность доступа по SSH к экземпляру.

  2. Создание маркера доступа с областями repo и admin:org в исходном экземпляре GitHub Enterprise Server.

  3. Чтобы свести к минимуму время простоя, создайте список репозиториев, которые необходимо экспортировать из исходного экземпляра. Можно добавить сразу несколько репозиториев для экспорта с помощью текстового файла, в котором указаны URL-адреса каждого репозитория в отдельной строке.

Экспорт исходных репозиториев GitHub Enterprise Server

Примечание. Блокировка репозитория полностью закрывает возможность записи данный в репозиторий. Связать новые команды или участников совместной работы с заблокированным репозиторием невозможно.

Если вы выполняете пробный запуск, блокировать репозиторий не нужно. При переносе данных из используемого репозитория GitHub настоятельно рекомендует блокировать репозиторий. Дополнительные сведения см. в разделе Сведения о миграции ghe-миграции.

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

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Чтобы подготовить репозиторий для экспорта, используйте команду ghe-migrator add с URL-адресом репозитория:

    • Если вы блокируете репозиторий, добавьте команду с помощью --lock. Если вы выполняете пробный запуск, --lock не требуется.

      ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock
      
    • Вы можете исключить вложения файлов, добавив --exclude_attachments в команду. Вложения файлов могут быть большими и могут без необходимости увеличить размер окончательного архива миграции.

    • Чтобы подготовить сразу несколько репозиториев для экспорта, создайте текстовый файл со списком всех URL-адресов репозиториев в отдельной строке и выполните команду ghe-migrator add с использованием флага -i и путем к текстовому файлу.

      ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
      
  3. При появлении запроса введите имя пользователя GitHub Enterprise Server:

    Enter username authorized for migration:  admin
    
  4. При появлении запроса на personal access tokenвведите маркер доступа, созданный в разделе "Подготовка исходного экземпляра GitHub Enterprise Server".

    Enter personal access token:  **************
    
  5. По завершении выполнения ghe-migrator add на печать будет выведен уникальный GUID миграции, созданный для идентификации этой операции экспорта, а также список ресурсов, добавленных в операцию экспорта. Вы будете использовать GUID миграции, созданный в последующих шагах ghe-migrator add и ghe-migrator export, чтобы сообщить ghe-migrator о необходимости продолжить работу с той же операции экспорта.

    > 101 models added to export
    > Migration GUID: EXAMPLE-MIGRATION-GUID
    > Number of records in this migration:
    > users                        |  5
    > organizations                |  1
    > repositories                 |  1
    > teams                        |  3
    > protected_branches           |  1
    > pull_request_reviews         |  1
    > milestones                   |  1
    > issues                       |  3
    > pull_requests                |  5
    > pull_request_review_comments |  4
    > commit_comments              |  2
    > issue_comments               | 10
    > issue_events                 | 63
    > releases                     |  3
    > attachments                  |  4
    > projects                     |  2
    

    Каждый раз при добавлении нового репозитория с существующим GUID миграции существующая операция экспорта обновляется. При повторном запуске ghe-migrator add без GUID миграции запускается новая операция экспорта и создается новый GUID миграции. Не используйте GUID миграции, созданный во время экспорта при подготовке миграции к импорту.

  6. Чтобы добавить дополнительные репозитории в ту же операцию экспорта, используйте команду ghe-migrator add с флагом -g. Вы передадите новый URL-адрес репозитория и GUID миграции из шага 5.

    ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock
    
  7. Завершив добавление репозиториев, создайте архив миграции с использованием команды ghe-migrator export с флагом -g и GUID миграции на шаге 5:

    $ ghe-migrator export -g MIGRATION-GUID
    > Archive saved to: /data/github/current/tmp/MIGRATION-GUID.tar.gz
    
    • Чтобы указать, где следует выполнить подготовку файлов миграции, добавьте команду с --staging-path=/full/staging/path. По умолчанию — /data/user/tmp.
  8. Закройте подключение к ваш экземпляр GitHub Enterprise Server:

    $ exit
    > logout
    > Connection to HOSTNAME closed.
    
  9. Скопируйте архив миграции на компьютер с помощью команды scp. При присвоении имени файлу архива будет использоваться GUID миграции:

    scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop
    
  10. Сведения о подготовке архивных данных миграции для импорта в экземпляр GitHub Enterprise Server см. в разделе "Перенос данных на GitHub Enterprise Server".