Is there a way to generate prisma migrations without applying them immediately?

Sometimes I need to apply Prisma migrations that do not only require a DDL change, but also some additional SQL statements I'd need to add in to migrate data. For instance when splitting a field into multiple columns, for setting an initial value to a column after it's been introduced (without a default value), etc. Is there a recommended way to do it? Otherwise whenever I edit a migration after generating it with wasp db migrate.dev it resets my local DB which kinds of defeats the purpose of testing additional migration statements
4 Replies
kapa.ai
kapa.ai•3d ago
Hi @Sergio Visinoni. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- Yes, there is a way to generate Prisma migrations without applying them immediately in Wasp. You can use the --create-only option with the wasp db migrate-dev command. This allows you to create an empty migration without applying it, giving you the opportunity to add custom SQL statements for data migration. According to the Wasp CLI Reference:
wasp db migrate-dev --create-only
wasp db migrate-dev --create-only
This command will create a new migration file without immediately applying it to your database. You can then edit this migration file to include your custom SQL statements for data migration. It's worth noting that while Wasp doesn't directly provide a built-in solution for complex data migrations, it does expose Prisma commands through its CLI. This means you have access to Prisma's capabilities for handling more complex migration scenarios. For your specific use cases like splitting fields or setting initial values for new columns, you would: 1. Generate the migration using wasp db migrate-dev --create-only 2. Edit the generated migration file to include your custom SQL statements 3. Apply the migration when you're ready However, it's important to note that Wasp doesn't currently have a documented best practice for handling complex data migrations. This is an area where the framework could potentially improve in the future. If you need more advanced migration capabilities, you might want to consider using Prisma's migrate diff and db execute commands, which were added in Prisma 3.13.0. These could potentially be accessed through Wasp's Prisma integration, although this isn't explicitly documented in the provided knowledge sources. Github Issue #215 mentions these commands and suggests they might be worth exploring for handling migrations. Remember to always test your migrations thoroughly in a development environment before applying them to production databases. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ---------------------- Sorry @Sergio Visinoni, 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?
Sergio Visinoni
Sergio VisinoniOP•3d ago
Aha! My bad, I had tried running wasp db migrate-dev --help searching for the same info, but I only got an error message 🙂
miho
miho•3d ago
wasp db migrate-dev --create-only worked out for your? 🙂
Sergio Visinoni
Sergio VisinoniOP•3d ago
Just made a quick test and it seemed to work. I'll do a more thorough test next time I'll have the same need

Did you find this page helpful?