InfoGrab DocsInfoGrab Docs

데이터베이스 기능 검증

데이터베이스 버전별 특정 동작을 처리하는 방법과 읽기 전용 데이터베이스 모드에서의 쓰기 작업 방지 방법을 설명합니다.

특정 코드가 특정 데이터베이스 버전에서만 동작하는 경우가 있습니다. 이러한 코드는 최대한 피하려 하지만, 때로는 데이터베이스(버전)별 동작을 추가해야 할 필요가 있습니다. 이를 위해 다음과 같은 메서드를 사용할 수 있습니다: ApplicationRecord.database.version : PostgreSQL 버전 번호를 X.Y.Z 형식의 문자열로 반환합니다. 이를 통해 다음과 같은 코드를 작성할 수 있습니다: if ApplicationRecord.database.version.to_f >= 11.7 run_really_fast_query else run_fast_query end 읽기 전용 데이터베이스 # 데이터베이스는 읽기 전용 모드로 사용될 수 있습니다. 이 경우 모든 GET 요청이 데이터베이스에 쓰기 작업을 시도하지 않도록 해야 합니다. 해당 요청 중 하나가 데이터베이스에 쓰기를 원한다면, 읽기 전용 데이터베이스에서 실행되지 않도록 Gitlab::Database.read_only? 또는 Gitlab::Database.read_write? 가드로 감싸야 합니다. 잠재적으로 쓰기 작업(CRUD의 CUD 작업)을 수행할 수 있는 요청을 필터링하고, 사용자가 데이터베이스를 업데이트하려다 500 오류가 발생하지 않도록 방지하는 Rails 미들웨어가 있습니다( Gitlab::Middleware::ReadOnly 참조).