You can follow these steps to generate the initial migration without resetting your database.
mkdir -p prisma/migrations/init
npx prisma migrate diff --from-empty --to-schema-datamodel prisma/schema.prisma --script > prisma/migrations/init/migration.sql
npx prisma migrate resolve --applied init
npx prisma migrate dev # it should say everything is in sync
Answer from Nurul Sundarani on Stack Overflowpostgresql - how to create an initial prisma migration - Stack Overflow
`npx prisma migrate dev --name init` fails in starter project
Where do you actually run prisma migrate deploy?
npx prisma migrate dev --name init from tutorial not working
I'm working on a little project with supabase and prisma, I've just been using one dev database which I update with prisma migrate dev. For production migrations, you're supposed to use prisma migrate deploy, which the prisma docs say to put in a CI/CD pipeline.
-
I don't have a CI/CD pipeline
-
I can't run it locally from my project directory, cause prisma uses the
DATABASE_URLenvironment, which is pointing to my dev database
So I'm wondering where y'all would actually run prisma migrate deploy from? Should I just bite the bullet and learn some github actions? Or is there an easier way?
EDIT: The prisma docs recommend using dotenv-cli to use switch between .env files, but I'm kinda worried that I might fuck up somehow and end up running prisma migrate reset on my prod database, and delete everything. But, seems like that might be my plan until I figure out some CI/CD stuff.
Still definitely open to any advice though!
I know this was a while ago but the fix is to first make a change in your schema.prisma file. Add whatever changes you need. Then run the command you are running. It will then notice the changes you made on the file and generate the SQL needed to achieve that change. Hope this helps.
Are you trying to do an empty migration? Try using
prisma migrate dev --create-only
doc