On Tuesday 01 December 2015 08:40:34 Andrew Godwin wrote:
> You can undo a migration manually using migrate, though if you're in
> multiple-tip-migration scenario you may need to make a merge migration
> first (but not apply it) or switch to a branch with only the migration you
> wish to undo.
> 

Yep. But this is highly unintuitive: "To fix it, first make things worse".

> The more general rebase command would be interesting, though I've always
> been wary about adding one, as it's not a guarantee we can always keep -
> some operations are irreversible, and in Django's case, a migration may not
> be undoable without other related migrations for foreignkeys, so deleting a
> migration would likely require deletion of those target migrations as well,
> potentially?
> 

Oh, I'd definitely not want that. If, in order to rebase a migration, I'd find 
that I need to roll other migrations back, I'd expect the rebase to fail. 

Similarly, if I get my "conflict-resistant undo", I'd expect it to require that 
the migration can be rolled back on its own. If others are dependent on it, 
they should be rolled back explicitly -- I'd really like to minimize automatic 
decision-making in a less-than-stable state.

Shai.

Reply via email to