Hi Marcin,
I'm sorry to hear that your views got dropped. I hope they were easy to recreate.
I imagine the reason the migrations framework uses CASCADE is because we assume Django manages all your database. I know without CASCADE, PostgreSQL (at least) can also be hard to fight against with permissions, sequence objects, triggers, and other objects that might be related to a table.
I'm not sure how feasible it would be to just remove the keyword. It would probably give a different bad migrations experience to other users. Is there a way to make CASCADE apply to some object types and not others?
There has been discussion of making view-based models in Django, that would maybe solve it for you in a different way by providing a way to manage views through the migrations framework. What do you think of that?
Thanks,
Adam