closes #9684
[arvados.git] / services / api / db / migrate / 20140501165548_add_unique_name_index_to_links.rb
index 0195cf00dd815e68ddfc9a8fa5904f22f08be658..444265a2ee140f667336e9d8623d6fb69b605817 100644 (file)
@@ -1,6 +1,13 @@
 class AddUniqueNameIndexToLinks < ActiveRecord::Migration
   def change
-    # todo: add "check (link_class is not 'name' or name is not null)"
-    add_index :links, [:tail_uuid, :name], where: "link_class='name'", unique: true
+    # Make sure PgPower is here. Otherwise the "where" will be ignored
+    # and we'll end up with a far too restrictive unique
+    # constraint. (Rails4 should work without PgPower, but that isn't
+    # tested.)
+    if not PgPower then raise "No partial column support" end
+
+    add_index(:links, [:tail_uuid, :name], unique: true,
+              where: "link_class='name'",
+              name: 'links_tail_name_unique_if_link_class_name')
   end
 end