14819: Merge branch 'master' into 14819-arvados-jobs-on-stretch
[arvados.git] / services / api / db / migrate / 20140501165548_add_unique_name_index_to_links.rb
index 0195cf00dd815e68ddfc9a8fa5904f22f08be658..c7f6e7a85d644921697f6701021e8af9d1fe74f3 100644 (file)
@@ -1,6 +1,17 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 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