X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7dad4d2b1baa96c31a1d1fcc50c9a94263d0fe41..c8b119d10b41cd507a6677d4feab7974362a153e:/services/api/db/migrate/20170906224040_materialized_permission_view.rb?ds=sidebyside diff --git a/services/api/db/migrate/20170906224040_materialized_permission_view.rb b/services/api/db/migrate/20170906224040_materialized_permission_view.rb index ef6701f976..6f4a5b971e 100644 --- a/services/api/db/migrate/20170906224040_materialized_permission_view.rb +++ b/services/api/db/migrate/20170906224040_materialized_permission_view.rb @@ -2,9 +2,9 @@ # # SPDX-License-Identifier: AGPL-3.0 -class MaterializedPermissionView < ActiveRecord::Migration +class MaterializedPermissionView < ActiveRecord::Migration[4.2] - @@idxtables = [:collections, :container_requests, :groups, :jobs, :links, :pipeline_instances, :pipeline_templates, :repositories, :users, :virtual_machines, :workflows] + @@idxtables = [:collections, :container_requests, :groups, :jobs, :links, :pipeline_instances, :pipeline_templates, :repositories, :users, :virtual_machines, :workflows, :logs] def up @@ -100,13 +100,17 @@ SELECT user_uuid, @@idxtables.each do |table| ActiveRecord::Base.connection.execute("CREATE INDEX index_#{table.to_s}_on_modified_at_uuid ON #{table.to_s} USING btree (modified_at desc, uuid asc)") end + + create_table :permission_refresh_lock + ActiveRecord::Base.connection.execute("REFRESH MATERIALIZED VIEW materialized_permission_view") end def down + drop_table :permission_refresh_lock remove_index :materialized_permission_view, name: 'permission_target_trashed' remove_index :materialized_permission_view, name: 'permission_target_user_trashed_level' @@idxtables.each do |table| - ActiveRecord::Base.connection.execute("DROP INDEX index_#{table.to_s}_on_modified_at_uuid") + ActiveRecord::Base.connection.execute("DROP INDEX IF EXISTS index_#{table.to_s}_on_modified_at_uuid") end ActiveRecord::Base.connection.execute("DROP MATERIALIZED VIEW IF EXISTS materialized_permission_view") end