--- /dev/null
+-- Add case insensitive username and email uniqueness
+
+-- An example of showing the dupes:
+-- select
+-- max(id) as id,
+-- lower(name) as lname,
+-- count(*)
+-- from user_
+-- group by lower(name)
+-- having count(*) > 1;
+
+-- Delete username dupes, keeping the first one
+delete
+from user_
+where id not in (
+ select min(id)
+ from user_
+ group by lower(name), lower(fedi_name)
+);
+
+-- The user index
+create unique index idx_user_name_lower on user_ (lower(name));
+
+-- Email lower
+create unique index idx_user_email_lower on user_ (lower(email));
+
+-- Set empty emails properly to null
+update user_ set email = null where email = '';
+