데이터베이스 사전

이 페이지는 GitLab의 데이터베이스 스키마를 문서화하여 데이터 분석가 및 다른 그룹이 특정 데이터베이스 테이블을 담당하는 기능 범주를 찾을 수 있도록 합니다.

위치

데이터베이스 사전 메타데이터 파일은 gitlab 프로젝트의 mainci 데이터베이스에 대해 db/docs/에 저장됩니다. embedding 데이터베이스의 경우, 사전 파일은 ee/db/embedding/docs/에 저장됩니다. geo 데이터베이스의 경우, 사전 파일은 ee/db/geo/docs/에 저장됩니다.

예시 사전 파일

---
table_name: terraform_states
classes:
- Terraform::State
feature_categories:
- infrastructure_as_code
description: Represents a Terraform state backend
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26619
milestone: '13.0'
gitlab_schema: gitlab_main

테이블 추가

스키마

속성 타입 필요 여부 설명
table_name 문자열 데이터베이스 테이블 이름.
classes 문자열 배열 아니오 이 테이블과 연관된 클래스 디렉터리.
feature_categories 문자열 배열 이 테이블을 사용하는 기능 범주 디렉터리.
description 문자열 아니오 테이블에 저장된 정보 및 목적에 대한 텍스트 설명.
introduced_by_url URL 아니오 이 테이블을 도입한 Merge Request 또는 커밋에 대한 URL.
milestone 문자열 이 테이블을 도입한 마일스톤.
gitlab_schema 문자열 GitLab 스키마 이름.

프로세스

테이블을 추가할 때 다음을 수행해야 합니다:

  1. 해당 디렉터리에 이 테이블에 대한 새 파일을 생성하십시오:
    • gitlab_main 테이블: db/docs/
    • gitlab_ci 테이블: db/docs/
    • gitlab_shared 테이블: db/docs/
    • gitlab_embedding 테이블: ee/db/embedding/docs/
    • gitlab_geo 테이블: ee/db/geo/docs/
  2. 파일의 이름을 <table_name>.yml로 지정하고 테이블에 대해 알고있는 정보를 포함하십시오.
  3. 이 파일을 해당 테이블을 생성하는 마이그레이션과 함께 커밋에 포함시키십시오.

테이블 삭제

스키마

속성 타입 필요 여부 설명
table_name 문자열 데이터베이스 테이블 이름.
classes 문자열 배열 아니오 이 테이블과 연관된 클래스 디렉터리.
feature_categories 문자열 배열 이 테이블을 사용하는 기능 범주 디렉터리.
description 문자열 아니오 테이블에 저장된 정보 및 목적에 대한 텍스트 설명.
introduced_by_url URL 아니오 이 테이블을 도입한 Merge Request 또는 커밋에 대한 URL.
milestone 문자열 아니오 이 테이블을 도입한 마일스톤.
gitlab_schema 문자열 GitLab 스키마 이름.
removed_by_url 문자열 이 테이블을 제거한 Merge Request 또는 커밋에 대한 URL.
removed_in_milestone 문자열 이 테이블을 제거하는 마일스톤.

프로세스

테이블을 삭제할 때 다음을 수행해야 합니다:

  1. 해당 테이블의 사전 파일을 deleted_tables 디렉터리로 이동하십시오:
    • gitlab_main 테이블: db/docs/deleted_tables/
    • gitlab_ci 테이블: db/docs/deleted_tables/
    • gitlab_shared 테이블: db/docs/deleted_tables/
    • gitlab_embedding 테이블: ee/db/embedding/docs/deleted_tables/
    • gitlab_geo 테이블: ee/db/geo/docs/deleted_tables/
  2. 사전 파일에 removed_by_urlremoved_in_milestone 필드를 추가하십시오.
  3. 이 변경 사항을 해당 테이블을 제거하는 마이그레이션과 함께 커밋에 포함시키십시오.

뷰 추가

스키마

속성 타입 필요 여부 설명
table_name 문자열 데이터베이스 뷰 이름.
classes 문자열 배열 아니오 이 뷰와 연관된 클래스 디렉터리.
feature_categories 문자열 배열 이 뷰를 사용하는 기능 범주 디렉터리.
description 문자열 아니오 뷰에 저장된 정보 및 목적에 대한 텍스트 설명.
introduced_by_url URL 아니오 이 뷰를 도입한 Merge Request 또는 커밋에 대한 URL.
milestone 문자열 아니오 이 뷰를 도입한 마일스톤.
gitlab_schema 문자열 GitLab 스키마 이름.

프로세스

새로운 뷰를 추가할 때 다음을 수행해야 합니다:

  1. 해당 디렉터리에 이 뷰에 대한 새 파일을 생성하십시오:
    • gitlab_main 뷰: db/docs/views/
    • gitlab_ci 뷰: db/docs/views/
    • gitlab_shared 뷰: db/docs/views/
    • gitlab_embedding 뷰: ee/db/embedding/docs/views/
    • gitlab_geo 뷰: ee/db/geo/docs/views/
  2. 파일의 이름을 <view_name>.yml로 지정하고 뷰에 대해 알고있는 정보를 포함하십시오.
  3. 이 파일을 해당 뷰를 생성하는 마이그레이션과 함께 커밋에 포함시키십시오.

뷰 삭제

스키마

속성 타입 필요 여부 설명
view_name 문자열 데이터베이스 뷰 이름.
classes 문자열 배열 아니오 이 뷰와 연관된 클래스 디렉터리.
feature_categories 문자열 배열 이 뷰를 사용하는 기능 범주 디렉터리.
description 문자열 아니오 뷰에 저장된 정보 및 목적에 대한 텍스트 설명.
introduced_by_url URL 아니오 이 뷰를 도입한 Merge Request 또는 커밋에 대한 URL.
milestone 문자열 아니오 이 뷰를 도입한 마일스톤.
gitlab_schema 문자열 GitLab 스키마 이름.
removed_by_url 문자열 이 뷰를 제거한 Merge Request 또는 커밋에 대한 URL.
removed_in_milestone 문자열 이 뷰를 제거하는 마일스톤.

프로세스

뷰를 삭제할 때는 다음과 같이 수행해야 합니다:

  1. 이 테이블에 대한 사전 파일을 deleted_views 디렉터리로 이동합니다:
    • gitlab_main view: db/docs/deleted_views/
    • gitlab_ci view: db/docs/deleted_views/
    • gitlab_shared view: db/docs/deleted_views/
    • gitlab_embedding view: ee/db/embedding/docs/deleted_views/
    • gitlab_geo view: ee/db/geo/docs/deleted_views/
  2. 사전 파일에 removed_by_urlremoved_in_milestone 필드를 추가합니다.
  3. 뷰를 삭제하는 마이그레이션과 함께이 변경 사항을 커밋에 포함합니다.