From 5ae35f9906eef220d15a08a4eaedebd3d601e3d4 Mon Sep 17 00:00:00 2001 From: Sam Saffron Date: Fri, 25 Oct 2019 11:57:34 +1100 Subject: [PATCH] FIX: allow storage of non unique rows in oauth2_user_infos Certain DBs have duplicates already, if we want to ensure uniqueness here we need to decide first how to clean up existing data and confirm all the plugins expect this. --- app/models/oauth2_user_info.rb | 2 +- .../20191022155215_add_index_to_oauth2_user_info.rb | 2 +- .../20191025005204_amend_oauth2_user_info_index.rb | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20191025005204_amend_oauth2_user_info_index.rb diff --git a/app/models/oauth2_user_info.rb b/app/models/oauth2_user_info.rb index 69f35ed731..285eb7a5c7 100644 --- a/app/models/oauth2_user_info.rb +++ b/app/models/oauth2_user_info.rb @@ -21,5 +21,5 @@ end # Indexes # # index_oauth2_user_infos_on_uid_and_provider (uid,provider) UNIQUE -# index_oauth2_user_infos_on_user_id_and_provider (user_id,provider) UNIQUE +# index_oauth2_user_infos_on_user_id_and_provider (user_id,provider) # diff --git a/db/migrate/20191022155215_add_index_to_oauth2_user_info.rb b/db/migrate/20191022155215_add_index_to_oauth2_user_info.rb index dc9093a6c0..4c330ddae4 100644 --- a/db/migrate/20191022155215_add_index_to_oauth2_user_info.rb +++ b/db/migrate/20191022155215_add_index_to_oauth2_user_info.rb @@ -2,6 +2,6 @@ class AddIndexToOauth2UserInfo < ActiveRecord::Migration[6.0] def change - add_index :oauth2_user_infos, [:user_id, :provider], unique: true + add_index :oauth2_user_infos, [:user_id, :provider] end end diff --git a/db/migrate/20191025005204_amend_oauth2_user_info_index.rb b/db/migrate/20191025005204_amend_oauth2_user_info_index.rb new file mode 100644 index 0000000000..15dcf001d3 --- /dev/null +++ b/db/migrate/20191025005204_amend_oauth2_user_info_index.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AmendOauth2UserInfoIndex < ActiveRecord::Migration[6.0] + def up + # remove old index which may have been unique + execute "DROP INDEX index_oauth2_user_infos_on_user_id_and_provider" + add_index :oauth2_user_infos, [:user_id, :provider] + end +end