Draft: Added dependent destroy clause for notification_settings
What does this MR do and why?
We are adding missing dependent clause for relation notification_settings for a user at model level to resolve #567168 (closed)
There is not foreign key constraint for table notification_settings in database I could not find any result for the below query for table notification_settings -
SELECT tc.constraint_name, tc.table_schema, tc.table_name, kcu.column_name, ccu.table_schema AS foreign_table_schema, ccu.table_name AS foreign_table_name, ccu.column_name AS foreign_column_name FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = 'notification_settings';
But we have declared belongs_to and has_many relationships at model level.
model app/models/notification_setting.rb has three belongs_to relationships -
belongs_to :user
belongs_to :source, polymorphic: true # rubocop:disable Cop/PolymorphicAssociations
belongs_to :project, foreign_key: 'source_id'
We have mentioned dependent: destroy for both Group and Project models but the same was not done for user. I am not sure why this was missed.