﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
24037	Migrating a legacy table results in data loss	Bibhas C Debnath	Tim Graham	"I created several models for our legacy database using `inspectdb` and hence all those models had their `managed` flag set to `False`. Now I need to make some changes to that model, hence I removed the `managed` flag and the generated migration wants to drop my table first and then create it again. Which leads to loss of all my data.

So I edited the migration file and removed the `DeleteModel` operation. And faked that migration to avoid the error raised by `CreateModel` as the table already exists.

But now I cannot go backward beyond that migration as the backward operation of `CreateModel` will drop my table anyway and there is no way to make a migration irreversible or ask it Not to drop my table.

What would help in such cases is a way to handle the backward migration. So that I can either choose not to drop my table or raise an exception to make the migration irreversible. Or at least make the `CreateModel` operation irreversible. I found that the `Operation` class has a flag called `reversible`. But I could find no way to set it to `False`.

For now I've added a fake RunPython operation that returns None to make that migration irreversible, as suggested by Markus [https://groups.google.com/forum/#!topic/django-users/w9aVT3NOpkM / here]. But I'd love some way to handle it properly."	Bug	closed	Migrations	1.7	Release blocker	fixed		Simon Charette	Ready for checkin	1	0	0	0	0	0
