From 15df8569154fe899ef9602d4269e0ade92b0ab40 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