rubenv / sql-migrate

SQL schema migration tool for Go.
MIT License
3.23k stars 280 forks source link

Handle unknown migrations #44

Open ericklaus-wf opened 8 years ago

ericklaus-wf commented 8 years ago

Fixes bad behavior when some migrations in the db table are unknown to the current sql-migrate instance. That might happen when one branch applies some migrations and a branch lacking those migrations tries to add some of its own.

This resolves https://github.com/rubenv/sql-migrate/issues/37 by choosing option 2 of https://github.com/rubenv/sql-migrate/issues/43.

Fixed behaviors:

Some weirdness remains:

Is this course desirable? If so, I can resolve the pointed out weirdness either in this PR or later on.

rickvanbodegraven commented 6 years ago

I am probably going to see if I can use this in our project, as it might fix the exact issues we are facing. Our branching strategy has branches for each of our scrum stories, which results in migrations being written on various branches, some of which are sometimes dependent on one another. Whenever we have to review work that was done on other branches, our dockerized postgres databases get partial migrations from some of those branches, and if we then switch back to our own work, we have to delete our database (thus losing all our test data every single time) and get it migrated again (which is fast and all, but really annoying......).

Heavy support for this PR 👍