Wednesday, May 20, 2015

Avoiding Keyboard Input for Removing Stale Content Types Automatically (migrations and automatic deployment)

I submitted this ticket recently: https://code.djangoproject.com/ticket/24820 

The content of it is as follows:

While removing models in one of my migrations, I was prompted by Django to input yes/no. For development, this is no problem. For automatic deployments it is.

I want to know if there exists or if it's possible to add functionality to Django to do this. I've created a modification which works, but also want to learn if anyone else has solved this problem differently.

Modifying the deployment file to include --noinput does not solve this problem (it basically defaults to no which ultimately doesn't remove the model).

The patch I've created seems to be working just fine. My solution involves editing the contenttypes to take an additional argument. The argument can be invoked inside a migration file so that I have full control over when it's used. You can view the code below.

Link to diff for the patch I created: ​https://github.com/Protosac/django/commit/d98fff8219469a363493e8d8455c7ffb2430d36f

The Django core team expressed interest in a solution that would address this problem, but rejected my specific implementation. I wanted to open a discussion to learn how other developers were dealing with this issue. 

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9b45897a-e650-4c5e-b277-11590931619b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment