Add NOT NULL constraint to notes sharding key
As part of &12795 we need to add sharding keys to all our tables. notes already has project_id from way-back, however sharding keys are required to be NOT NULL so we will need to embark on the multi-release process of migrating that column, as outlined here: https://docs.gitlab.com/ee/development/database/not_null_constraints.html#add-a-not-null-constraint-to-an-existing-column
This will delay completion of adding sharding keys to tables that want to backfill their own sharding keys from notes.
Order of Work
- 
Delete abuse_notesrecords
- 
Add (num_nonnulls(namespace_id, organization_id, project_id) >= 1) NOT VALIDconstraint
- 
Backfill sharding key 
- 
Validate (num_nonnulls(namespace_id, organization_id, project_id) >= 1)constraint
- 
Set (namespace_id, organization_id, project_id)as the sharding key fornotes
- 
1. Check which of the noteable types have project id null SELECT DISTINCT "notes"."noteable_type" FROM "notes" WHERE "notes"."project_id" IS NULL- if someone has access, it would be nice to check for me, otherwise I will create an access request and connect through postgres (https://docs.gitlab.com/development/database/database_lab/#access-the-console-with-psql)
- 
2. Create a backfill migration that handles these noteable types similar to (!163687 (merged))