From c71da3f3352159f02276c9a49f1ed8c54c75010d Mon Sep 17 00:00:00 2001 From: Daniel Waterworth Date: Tue, 8 Oct 2019 14:00:05 +0100 Subject: [PATCH] FIX: Add unique index to prevent duplicate slugs for categories --- app/models/category.rb | 1 + ...1008124357_add_unique_index_categories_on_slug.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 db/migrate/20191008124357_add_unique_index_categories_on_slug.rb diff --git a/app/models/category.rb b/app/models/category.rb index a903c8f3664..db500e6ff67 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -890,4 +890,5 @@ end # index_categories_on_search_priority (search_priority) # index_categories_on_topic_count (topic_count) # unique_index_categories_on_name (COALESCE(parent_category_id, '-1'::integer), name) UNIQUE +# unique_index_categories_on_slug (COALESCE(parent_category_id, '-1'::integer), slug) UNIQUE # diff --git a/db/migrate/20191008124357_add_unique_index_categories_on_slug.rb b/db/migrate/20191008124357_add_unique_index_categories_on_slug.rb new file mode 100644 index 00000000000..5ee97c64826 --- /dev/null +++ b/db/migrate/20191008124357_add_unique_index_categories_on_slug.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class AddUniqueIndexCategoriesOnSlug < ActiveRecord::Migration[6.0] + def change + add_index( + :categories, + 'COALESCE(parent_category_id, -1), slug', + name: 'unique_index_categories_on_slug', + unique: true + ) + end +end