InfoGrab Docs

마이그레이션 후 기여 및 멤버십 매핑 문제 해결

요약

플레이스홀더 사용자 재할당 중에 다음과 같은 문제가 발생할 수 있습니다. failed 상태의 소스 사용자 재할당을 재시도하려면 GraphQL API 또는 Rails 콘솔을 사용할 수 있습니다. importSourceUserRetryFailedReassignment 뮤테이션을 사용하여 실패한 재할당을 재시도합니다:

플레이스홀더 사용자 재할당 중에 다음과 같은 문제가 발생할 수 있습니다.

소스 사용자 재할당 실패#

failed 상태의 소스 사용자 재할당을 재시도하려면 GraphQL API 또는 Rails 콘솔을 사용할 수 있습니다. 자세한 내용은 이슈 589777을 참조하세요. UI 지원에 대해서는 이슈 593001에서 논의됩니다.

GraphQL API 사용#

히스토리

importSourceUserRetryFailedReassignment 뮤테이션을 사용하여 실패한 재할당을 재시도합니다:

mutation {
  importSourceUserRetryFailedReassignment(input: { id: "gid://gitlab/Import::SourceUser/" }) {
    importSourceUser {
      id
      status
    }
    errors
  }
}

를 임포트 소스 사용자 ID로 교체합니다. 이 ID는 네임스페이스에서 importSourceUsers를 쿼리하여 찾을 수 있습니다.

Rails 콘솔 사용#

Rails 콘솔에서 실패한 소스 사용자를 수동으로 재시도할 수 있습니다:

# 플레이스홀더 사용자 ID로 찾기 - UI에서 쉽게 가져올 수 있으므로
placeholder_user_id = <PLACEHOLDER_USER_ID>
import_source_user = Import::SourceUser.find_by(placeholder_user_id: placeholder_user_id)

if import_source_user.failed?
  import_source_user.update!(status: Import::SourceUser::STATUSES[:reassignment_in_progress])
  Import::ReassignPlaceholderUserRecordsWorker.perform_async(import_source_user.id)
  puts "Reassignment retry queued"
else
  puts "Import source user status: #{import_source_user.status} (expected 'failed')"
end

반복적인 실패 조사#

소스 사용자가 다시 실패하는 경우 importer.log에서 Failed to reassign placeholder user 메시지가 포함된 로그를 확인하여 근본 원인 조사를 시작하세요.

소스 사용자가 성공적으로 재할당되었지만 플레이스홀더 사용자가 삭제되지 않은 경우#

플레이스홀더 사용자는 사용자 기여를 성공적으로 재할당한 후 삭제됩니다. 하지만 플레이스홀더 사용자의 ID를 참조하는 일부 데이터베이스 레코드가 재할당 후에도 데이터베이스에 남아 있어 플레이스홀더 사용자가 삭제되지 않을 수 있습니다. 이런 경우 관리자는 관리자 사용자 테이블에서 여전히 플레이스홀더 사용자를 볼 수 있습니다. 플레이스홀더 사용자는 라이선스 한도에 포함되지 않으며 일반적인 GitLab 운영에 영향을 미치지 않지만, 일부 관리자는 마이그레이션 후 모든 플레이스홀더 사용자가 삭제되기를 원할 수 있습니다.

GitLab 18.5 이하에서 플레이스홀더 사용자를 재할당하는 사용자가 이 시나리오를 더 많이 겪을 수 있습니다. 이런 경우 Unable to delete placeholder user because it is still referenced in other tables 메시지가 플레이스홀더 사용자의 ID와 함께 importer.log에 나타납니다.

이러한 사용자를 삭제하려면 다음 중 하나를 수행합니다:

  • 관리자로서 플레이스홀더 사용자 삭제. 이 방법은 남아 있는 플레이스홀더 사용자 기여를 삭제해도 된다고 확신할 때 가장 적합합니다.
  • GitLab 인스턴스를 GitLab 18.6 이상으로 업그레이드하고 Rails 콘솔에서 플레이스홀더 사용자의 플레이스홀더 재할당을 재시도합니다. 이 방법은 재할당이 GitLab 18.5 이하에서 완료되었고 남아 있는 플레이스홀더 사용자 기여에 대해 확신이 없을 때 가장 적합합니다.

Rails 콘솔에서 완료된 플레이스홀더 사용자의 재할당을 재시도하려면:

# 플레이스홀더 사용자의 소스 사용자 찾기
placeholder_user_id = <PLACEHOLDER_USER_ID>
import_source_user = Import::SourceUser.find_by(placeholder_user_id: placeholder_user_id)

if import_source_user.completed?
  import_source_user.update!(status: Import::SourceUser::STATUSES[:reassignment_in_progress])
  Import::ReassignPlaceholderUserRecordsWorker.perform_async(import_source_user.id)
  puts "Reassignment retry queued"
else
  puts "Import source user status: #{import_source_user.status} (expected 'completed')"
end

마이그레이션 후 기여 및 멤버십 매핑 문제 해결

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

플레이스홀더 사용자 재할당 중에 다음과 같은 문제가 발생할 수 있습니다. failed 상태의 소스 사용자 재할당을 재시도하려면 GraphQL API 또는 Rails 콘솔을 사용할 수 있습니다. importSourceUserRetryFailedReassignment 뮤테이션을 사용하여 실패한 재할당을 재시도합니다:

플레이스홀더 사용자 재할당 중에 다음과 같은 문제가 발생할 수 있습니다.

소스 사용자 재할당 실패#

failed 상태의 소스 사용자 재할당을 재시도하려면 GraphQL API 또는 Rails 콘솔을 사용할 수 있습니다. 자세한 내용은 이슈 589777을 참조하세요. UI 지원에 대해서는 이슈 593001에서 논의됩니다.

GraphQL API 사용#

히스토리

importSourceUserRetryFailedReassignment 뮤테이션을 사용하여 실패한 재할당을 재시도합니다:

mutation {
  importSourceUserRetryFailedReassignment(input: { id: "gid://gitlab/Import::SourceUser/" }) {
    importSourceUser {
      id
      status
    }
    errors
  }
}

를 임포트 소스 사용자 ID로 교체합니다. 이 ID는 네임스페이스에서 importSourceUsers를 쿼리하여 찾을 수 있습니다.

Rails 콘솔 사용#

Rails 콘솔에서 실패한 소스 사용자를 수동으로 재시도할 수 있습니다:

# 플레이스홀더 사용자 ID로 찾기 - UI에서 쉽게 가져올 수 있으므로
placeholder_user_id = <PLACEHOLDER_USER_ID>
import_source_user = Import::SourceUser.find_by(placeholder_user_id: placeholder_user_id)

if import_source_user.failed?
  import_source_user.update!(status: Import::SourceUser::STATUSES[:reassignment_in_progress])
  Import::ReassignPlaceholderUserRecordsWorker.perform_async(import_source_user.id)
  puts "Reassignment retry queued"
else
  puts "Import source user status: #{import_source_user.status} (expected 'failed')"
end

반복적인 실패 조사#

소스 사용자가 다시 실패하는 경우 importer.log에서 Failed to reassign placeholder user 메시지가 포함된 로그를 확인하여 근본 원인 조사를 시작하세요.

소스 사용자가 성공적으로 재할당되었지만 플레이스홀더 사용자가 삭제되지 않은 경우#

플레이스홀더 사용자는 사용자 기여를 성공적으로 재할당한 후 삭제됩니다. 하지만 플레이스홀더 사용자의 ID를 참조하는 일부 데이터베이스 레코드가 재할당 후에도 데이터베이스에 남아 있어 플레이스홀더 사용자가 삭제되지 않을 수 있습니다. 이런 경우 관리자는 관리자 사용자 테이블에서 여전히 플레이스홀더 사용자를 볼 수 있습니다. 플레이스홀더 사용자는 라이선스 한도에 포함되지 않으며 일반적인 GitLab 운영에 영향을 미치지 않지만, 일부 관리자는 마이그레이션 후 모든 플레이스홀더 사용자가 삭제되기를 원할 수 있습니다.

GitLab 18.5 이하에서 플레이스홀더 사용자를 재할당하는 사용자가 이 시나리오를 더 많이 겪을 수 있습니다. 이런 경우 Unable to delete placeholder user because it is still referenced in other tables 메시지가 플레이스홀더 사용자의 ID와 함께 importer.log에 나타납니다.

이러한 사용자를 삭제하려면 다음 중 하나를 수행합니다:

  • 관리자로서 플레이스홀더 사용자 삭제. 이 방법은 남아 있는 플레이스홀더 사용자 기여를 삭제해도 된다고 확신할 때 가장 적합합니다.
  • GitLab 인스턴스를 GitLab 18.6 이상으로 업그레이드하고 Rails 콘솔에서 플레이스홀더 사용자의 플레이스홀더 재할당을 재시도합니다. 이 방법은 재할당이 GitLab 18.5 이하에서 완료되었고 남아 있는 플레이스홀더 사용자 기여에 대해 확신이 없을 때 가장 적합합니다.

Rails 콘솔에서 완료된 플레이스홀더 사용자의 재할당을 재시도하려면:

# 플레이스홀더 사용자의 소스 사용자 찾기
placeholder_user_id = <PLACEHOLDER_USER_ID>
import_source_user = Import::SourceUser.find_by(placeholder_user_id: placeholder_user_id)

if import_source_user.completed?
  import_source_user.update!(status: Import::SourceUser::STATUSES[:reassignment_in_progress])
  Import::ReassignPlaceholderUserRecordsWorker.perform_async(import_source_user.id)
  puts "Reassignment retry queued"
else
  puts "Import source user status: #{import_source_user.status} (expected 'completed')"
end