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 참고).

데이터베이스 기능 검증

GitLab v19.4
원문 보기

요약

특정 코드가 특정 데이터베이스 버전에서만 동작하는 경우가 있습니다. 이를 위해 다음 메서드를 사용할 수 있습니다: 이를 이용해 다음과 같은 코드를 작성할 수 있습니다: 데이터베이스는 읽기 전용 모드로 사용할 수 있습니다.

특정 코드가 특정 데이터베이스 버전에서만 동작하는 경우가 있습니다. 이러한 코드는 최대한 피하려 하지만, 때로는 버전별 데이터베이스 동작을 추가해야 할 때가 있습니다.

이를 위해 다음 메서드를 사용할 수 있습니다:

  • 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 참고).