diff options
Diffstat (limited to 'lib/gitlab/database/postgres_partition.rb')
-rw-r--r-- | lib/gitlab/database/postgres_partition.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/gitlab/database/postgres_partition.rb b/lib/gitlab/database/postgres_partition.rb index 0986372586b..7da60d8375d 100644 --- a/lib/gitlab/database/postgres_partition.rb +++ b/lib/gitlab/database/postgres_partition.rb @@ -7,10 +7,14 @@ module Gitlab belongs_to :postgres_partitioned_table, foreign_key: 'parent_identifier', primary_key: 'identifier' - scope :by_identifier, ->(identifier) do + scope :for_identifier, ->(identifier) do raise ArgumentError, "Partition name is not fully qualified with a schema: #{identifier}" unless identifier =~ /^\w+\.\w+$/ - find(identifier) + where(primary_key => identifier) + end + + scope :by_identifier, ->(identifier) do + for_identifier(identifier).first! end scope :for_parent_table, ->(name) { where("parent_identifier = concat(current_schema(), '.', ?)", name).order(:name) } |