fix: no user ever had a username, so people search found nobody

Root cause of "still cannot find users": username was optional in
better-auth's schema and no signup form or settings page ever set it,
but search/profile/follow all key on username, not user id. Every
account now gets a unique one auto-generated (from name/email) in the
user.create.before hook — covers email/password and OAuth signups.
Added a one-off db:backfill-usernames script for accounts created
before this fix and ran it against the current database.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Arnaud
2026-07-13 17:26:12 +02:00
parent 79cdb8cd04
commit 2ee99ea463
8 changed files with 112 additions and 5 deletions
+1
View File
@@ -13,6 +13,7 @@
"migrate": "drizzle-kit migrate",
"studio": "drizzle-kit studio",
"seed": "tsx src/seed.ts",
"backfill-usernames": "tsx src/backfill-usernames.ts",
"typecheck": "tsc --noEmit"
},
"dependencies": {