W
Wasp•3w ago
jason

I messed up my db migrations...

Hi all.. I messed up my db migration and now I have no idea how to fix this. This 'migration' stuff is kind of insane, but I'm willing to put up with it because the framework itself is so solid. Anyways, I have my OpenSaaS project being tracked by git. I was trying to implement a new feature, which included a change to the schema.prisma file, which required a db migration. However, I later decided to just roll back to the last git commit. This messed up my migration, the errors weren't specific at all about what I should do so I think I just removed the latest migration directory? It got super messed up, so I just reset the entire db using "wasp db reset". It looked like it was working fine after reset. But now, I'm making more changes to the db schema, and tried migrating it. But it threw an error about the last migration from before I reset.
[ Db !] Error: P3015
[ Db !]
[ Db !] Could not find the migration file at /srv/web/opensaas_first_project/app/.wasp/out/db/migrations/20250103154636_interview_strengths_improvments_skillscores_migration/migration.sql. Please delete the directory or restore the migration file.
[ Db !]
[ Db !] Error: P3015
[ Db !]
[ Db !] Could not find the migration file at /srv/web/opensaas_first_project/app/.wasp/out/db/migrations/20250103154636_interview_strengths_improvments_skillscores_migration/migration.sql. Please delete the directory or restore the migration file.
[ Db !]
I tried, from the /app directory, running: wasp clean rm -rf .wasp/ rm -rf node_modules/ npm install wasp db start wasp db reset But it's STILL talking about the old migration. Is it somewhere in my .git folder? What the hell is causing this headache?
7 Replies
kapa.ai
kapa.ai•3w ago
Hi @jason. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- It seems you're facing some challenges with database migrations in your Wasp project. Let's try to address this issue step by step based on the information provided in the knowledge sources. First, it's important to note that when you make changes to your database schema (like modifying the schema.prisma file), you need to create and apply new migrations. However, when you roll back to a previous git commit, it can cause inconsistencies between your code, migrations, and the actual database state. To resolve this issue, you can try the following steps: 1. Delete all the old migrations and clean the project:
rm -r migrations/
wasp clean

rm -r migrations/
wasp clean

This step is mentioned in the Wasp documentation on migrating databases. 2. Ensure your database is running. 3. Run wasp db migrate-dev to create a new initial migration based on your current schema. If you're still encountering issues after these steps, it's possible that there might be some remnants of the old migrations in your project. In this case, you might want to try a more thorough cleanup: 1. Delete the entire .wasp directory (which you've already done). 2. Delete the migrations directory in your project root (if it exists). 3. Run wasp clean to remove generated files. 4. If you're using a local database, you might want to drop and recreate it to ensure a clean slate. 5. Run wasp db migrate-dev to create a fresh initial migration. If the problem persists, it's possible that the issue is related to how Wasp is tracking migration history. In this case, you might need to manually clean up the _prisma_migrations table in your database. Remember, it's crucial to run wasp db migrate-dev after making changes to your data model, as mentioned in the Discord support thread. This command prepares your Prisma models for both local and production databases. If you continue to face issues, it might be helpful to share more details about your project structure and the exact steps that led to this situation. The Wasp community is generally very helpful with such issues, as seen in various GitHub issues and Discord threads. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ---------------------- Sorry @jason, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist: Perhaps try again in 15mins?
jason
jasonOP•3w ago
Ok, thank you bot!! That actually helped me immensely. rm -r migrations/ wasp clean wasp db migrate-dev That worked! This whole "migration" step still seems so incredibly bootleg, but nonetheless we push forward 😤 So wait, in the future, if I make a migration then later need to roll back, how can I do so without losing all my data?
palid
palid•3w ago
@jason it's a problem with Prisma, not wasp, that it doesn't really have good down migrations.
palid
palid•3w ago
There's no good way to rollback a prisma migration, see: https://www.prisma.io/docs/orm/prisma-migrate/workflows/generating-down-migrations
palid
palid•3w ago
generally you should have seeding scripts for your development, so that you can safely just reset your entire db instead of "rolling back" a migration, as you might be left with a very weird database state. And then you need to test not only your up migrations, but also down migrations, to make sure that you do not leave the database unsynced
jason
jasonOP•3w ago
Thank you, this is SUPER helpful!
Filip
Filip•3w ago
What @palid said was spot on! Thanks for the help! Glad you found the document helpful @jason. Yeah, the migration stuff can get pretty confusing, even for me who works with it all the time. And, like @palid said, only down-migrations are a problem. Since we depend on Prisma, we're kind of hoping they solve the problem soon, and we then build on top of that. We don't want to build our own solution on top of Prisma just to end up throwing it out when they release a native one.

Did you find this page helpful?