migrate dev is a development command: it wants a disposable database. Never point it at production. What you need is a baseline: tell Prisma "the current state is migration 0".
npx prisma db pull # schema.prisma matches the DB
mkdir -p prisma/migrations/0_init
npx prisma migrate diff --from-empty --to-schema-datamodel prisma/schema.prisma --script > prisma/migrations/0_init/migration.sql
npx prisma migrate resolve --applied 0_initFrom then on: migrate dev against a local database (Docker or supabase start), migrate deploy against production. Set directUrl to the session pooler or direct connection for migrations.
Also leave Supabase's own schemas (auth, storage) out of Prisma's hands. If you reference auth.users, use the schemas preview feature carefully, or just keep a plain uuid column without a Prisma relation to it.