데이터베이스 마이그레이션 파이프라인
GitLab의 자동화된 마이그레이션 테스트 파이프라인을 사용하여 프로덕션 유사 환경에서 데이터베이스 마이그레이션을 테스트하는 방법을 설명합니다.
자동화된 마이그레이션 테스트 파이프라인 을 사용하면 Database Lab 을 활용한 프로덕션 유사 환경에서 마이그레이션을 자동으로 테스트할 수 있습니다. 이 파이프라인은 아키텍처 설계 문서 를 기반으로 합니다. 마이그레이션 테스트는 새로운 데이터베이스 마이그레이션을 추가하는 변경 사항에 대해 GitLab 프로젝트 에서 활성화됩니다. test Stage 내의 db:gitlabcom-database-testing job을 실행하여 이 job을 수동으로 트리거할 수 있습니다. 리소스 낭비를 방지하기 위해, 머지 리퀘스트가 리뷰 준비가 완료된 경우에만 이 job을 실행하세요. 또한 파이프라인이 test Stage에 표시되려면 해당 머지 리퀘스트에 "database" 라벨이 있어야 합니다. 이 job은 ops GitLab 인스턴스 에서 파이프라인을 시작합니다. 보안상의 이유로, 파이프라인에 대한 접근은 데이터베이스 메인테이너로 제한됩니다. 파이프라인이 시작되면, 봇이 머지 리퀘스트에 댓글로 알림을 보냅니다. 파이프라인이 완료되면, 댓글이 테스트 결과로 업데이트됩니다. 댓글에는 main 과 ci 데이터베이스 모두에 대한 테스트 정보가 포함됩니다. 테스트된 각 데이터베이스에는 아래에서 설명하는 네 가지 섹션이 있습니다. 요약 # 댓글의 첫 번째 섹션에는 다음을 포함한 테스트 결과 요약이 포함됩니다: 경고(Warnings) - 예외 또는 오래 실행되는 쿼리와 같은 중요한 문제를 강조 표시합니다. 마이그레이션(Migrations) - 각 마이그레이션이 완료되는 데 걸린 시간, 성공 여부, 그리고 데이터베이스 크기 증가량을 표시합니다. 런타임 히스토그램(Runtime histogram) - 이 섹션을 확장하면 모든 마이그레이션에 걸친 쿼리 런타임 히스토그램을 볼 수 있습니다. 마이그레이션 세부 정보 # 댓글의 다음 섹션에는 각 마이그레이션에 대한 세부 정보가 포함됩니다: 세부 사항(Details) - 마이그레이션 유형, 총 실행 시간, 그리고 데이터베이스 크기 변화를 표시합니다. 쿼리(Queries) - 마이그레이션 중에 실행된 모든 쿼리와 함께 호출 횟수, 타이밍, 변경된 행 수를 표시합니다. 런타임 히스토그램(Runtime histogram) - 마이그레이션에 대한 쿼리 시간 분포를 나타냅니다. 데이터베이스 크기 증가 # 경우에 따라 마이그레이션이 크기 증가를 유발하지 않을 것으로 예상되더라도 +8.00 KiB 크기 증가가 표시될 수 있습니다. 마이그레이션을 완료하면 schema_migrations 테이블에 행이 추가되며, 이로 인해 새 디스크 페이지가 생성될 수 있습니다. 새 디스크 페이지가 생성되면 데이터베이스 크기가 정확히 8 KiB만큼 증가합니다. 백그라운드 마이그레이션 세부 정보 # 댓글의 다음 섹션에는 각 일괄 백그라운드 마이그레이션에 대한 세부 정보가 포함됩니다: 샘플링 정보(Sampling information) - 이 테스트 실행 중에 샘플링된 배치 수입니다. 샘플링된 배치는 테이블의 ID 범위에 걸쳐 균일하게 선택됩니다. 샘플링은