X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3bd5f6c3f353059c15eeea51b16b2fdee694d504..5cd02331394595a6e64f19c2cc14c9955c9266dd:/services/api/db/migrate/20140501165548_add_unique_name_index_to_links.rb diff --git a/services/api/db/migrate/20140501165548_add_unique_name_index_to_links.rb b/services/api/db/migrate/20140501165548_add_unique_name_index_to_links.rb index 0195cf00dd..444265a2ee 100644 --- a/services/api/db/migrate/20140501165548_add_unique_name_index_to_links.rb +++ b/services/api/db/migrate/20140501165548_add_unique_name_index_to_links.rb @@ -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