2021-10-27 15:23:28 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Gitlab
|
|
|
|
module Database
|
|
|
|
module AsyncIndexes
|
2021-12-11 22:18:48 +05:30
|
|
|
class PostgresAsyncIndex < SharedModel
|
2021-10-27 15:23:28 +05:30
|
|
|
self.table_name = 'postgres_async_indexes'
|
|
|
|
|
|
|
|
MAX_IDENTIFIER_LENGTH = Gitlab::Database::MigrationHelpers::MAX_IDENTIFIER_NAME_LENGTH
|
|
|
|
MAX_DEFINITION_LENGTH = 2048
|
|
|
|
|
|
|
|
validates :name, presence: true, length: { maximum: MAX_IDENTIFIER_LENGTH }
|
|
|
|
validates :table_name, presence: true, length: { maximum: MAX_IDENTIFIER_LENGTH }
|
|
|
|
validates :definition, presence: true, length: { maximum: MAX_DEFINITION_LENGTH }
|
|
|
|
|
2022-08-27 11:52:29 +05:30
|
|
|
scope :to_create, -> { where("definition ILIKE 'CREATE%'") }
|
|
|
|
scope :to_drop, -> { where("definition ILIKE 'DROP%'") }
|
|
|
|
|
2021-10-27 15:23:28 +05:30
|
|
|
def to_s
|
|
|
|
definition
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|