업로드 마이그레이션 Rake 작업
로컬 스토리지와 오브젝트 스토리지 간에 GitLab 업로드 파일(아바타, 로고, 첨부 파일, 파비콘, 마크다운 등)을 마이그레이션하는 Rake 작업을 설명합니다.
다양한 스토리지 유형 간에 업로드를 마이그레이션하는 Rake 작업이 있습니다. gitlab:uploads:migrate:all 로 모든 업로드를 마이그레이션하거나 특정 업로드 유형만 마이그레이션하려면 gitlab:uploads:migrate 를 사용합니다. 오브젝트 스토리지로 마이그레이션 # GitLab에 대한 업로드를 위해 오브젝트 스토리지를 구성 한 후, 이 작업을 사용하여 기존 업로드를 로컬 스토리지에서 원격 스토리지로 마이그레이션합니다. 모든 처리는 백그라운드 워커에서 수행되며 다운타임이 필요하지 않습니다 . GitLab에서 오브젝트 스토리지 사용 에 대해 자세히 읽어보세요. All-in-one Rake 작업 # GitLab은 업로드된 모든 파일(예: 아바타, 로고, 첨부 파일, 파비콘)을 한 번에 오브젝트 스토리지로 마이그레이션하는 래퍼 Rake 작업을 제공합니다. 래퍼 작업은 이러한 각 카테고리에 속하는 파일을 하나씩 마이그레이션하는 개별 Rake 작업을 호출합니다. 이러한 개별 Rake 작업 은 다음 섹션에서 설명합니다. 로컬 스토리지에서 오브젝트 스토리지로 모든 업로드를 마이그레이션하려면 다음을 실행합니다: Linux package (Omnibus) Self-compiled (source) gitlab-rake "gitlab:uploads:migrate:all" sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:uploads:migrate:all PostgreSQL 콘솔 을 사용하여 선택적으로 진행 상황을 추적하고 모든 업로드가 성공적으로 마이그레이션되었는지 확인할 수 있습니다: Linux 패키지 설치의 경우 sudo gitlab-rails dbconsole --database main . 자체 컴파일 설치의 경우 sudo -u git -H psql -d gitlabhq_production . 아래의 objectstg ( store=2 인 경우)에 모든 아티팩트의 수가 있는지 확인합니다: gitlabhq_production=# SELECT count(*) AS total, sum(case when store = '1' then 1 else 0 end) AS filesystem, sum(case when store = '2' then 1 else 0 end) AS objectstg FROM uploads; total | filesystem | objectstg ------+------------+----------- 2409 | 0 | 2409 uploads 폴더의 디스크에 파일이 없는지 확인합니다: sudo find /var/opt/gitlab/gitlab-rails/uploads -type f | grep -v tmp | wc -l 개별 Rake 작업 # All-in-one Rake 작업 을 이미 실행했다면 이러한 개별 작업을 실행할 필요가 없습니다. Rake 작업은 세 가지 매개변수를 사용하여 마이그레이션할 업로드를 찾습니다: 매개변수 유형 설명 uploader_
