about summary refs log tree commit diff
path: root/db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2019-07-28 05:59:51 +0200
committerGitHub <noreply@github.com>2019-07-28 05:59:51 +0200
commitf371b32137ccd7e74ca29d25af2072fb79654b15 (patch)
treed9ba19f1caab5674a5b4f828b39c938564aa142c /db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb
parent4cc29eb5ad106c267ff16c9f49f145bc34d1aae0 (diff)
Change hashtags to preserve first-used casing (#11416)
Diffstat (limited to 'db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb')
-rw-r--r--db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb b/db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb
new file mode 100644
index 000000000..6fa8c0ec4
--- /dev/null
+++ b/db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb
@@ -0,0 +1,15 @@
+class AddCaseInsensitiveIndexToTags < ActiveRecord::Migration[5.2]
+  disable_ddl_transaction!
+
+  def up
+    safety_assured { execute 'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower ON tags (lower(name))' }
+    remove_index :tags, name: 'index_tags_on_name'
+    remove_index :tags, name: 'hashtag_search_index'
+  end
+
+  def down
+    add_index :tags, :name, unique: true, algorithm: :concurrently
+    safety_assured { execute 'CREATE INDEX CONCURRENTLY hashtag_search_index ON tags (name text_pattern_ops)' }
+    remove_index :tags, name: 'index_tags_on_name_lower'
+  end
+end