데이터베이스 업그레이드 DDL 잠금
GitLab.com에서 주요 PostgreSQL 업그레이드 중에는 업그레이드 프로세스와의 충돌을 방지하기 위해 DDL(Data Definition Language) 변경이 일시적으로 차단됩니다. GitLab.com은 서로 다른 주요 버전 간에 데이터를 복제하여 무중단 업그레이드를 구현하기 위해 논리적 복제를 사용합니다. 업그레이드 창 동안 새로운 DDL 변경은 복제를 중단할 수 있습니다. 모든 배포를 차단하는 강력한 PCL(Production Change Lock) 대신, 데이터베이스 스키마 변경이 머지되는 것만 방지하는 타겟화된 잠금을 사용합니다. 이 접근 방식은 GitLab이 다른 변경 사항을 계속 릴리스할 수 있도록 하면서 데이터베이스 업그레이드 프로세스를 스키마 수정으로 인한 중단으로부터 보호합니다. 작동 방식 # DDL 잠금은 config/database_upgrade_ddl_lock.yml 에 구성되며 CI/CD 파이프라인에서 실행되는 Danger 검사에 의해 적용됩니다.
