Skip to content

browniebroke/django-remake-migrations

Django remake migrations

CI Status Documentation Status Test coverage percentage

uv Ruff prek

PyPI Version Supported Python versions License


Documentation: https://django-remake-migrations.readthedocs.io

Source Code: https://github.com/browniebroke/django-remake-migrations


A Django admin command to recreate all migrations in a project. Like a squashmigrations command on steroids.

The problem

The built-in squashmigrations command is great, but it only work on a single app at a time, which means that you need to run it for each app in your project. On a project with enough cross-apps dependencies, it can be tricky to run.

This command aims at solving this problem, by recreating all the migration files in the whole project, from scratch, and mark them as applied by using the replaces attribute.

It makes an important trade-off though: it does NOT try to be correct when setting the replaces attribute. The only guarantees are that:

  • all old migrations are marked as replaced once.
  • all new migrations replace at least one of the old migrations

This is OK to make this trade-off as long as all your environments are fully migrated when you deploy the remade migrations.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Bruno Alla
Bruno Alla

💻 🤔 📖
Dmytro Litvinov
Dmytro Litvinov

📖
Mikuláš Poul
Mikuláš Poul

💻 🤔
Adam Johnson
Adam Johnson

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

Credits

This package was created with Copier and the browniebroke/pypackage-template project template.

About

A Django admin command to recreate all migrations in a project.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors