The answer is indeed to split this into steps. First step is to allow the field to be nullable if it's not already. Deploy.
Then you create a new deploy (not PR) that stops using the field altogether from all the codebase. You can remove the reference to the field or comment it out. Do not `makemigrations`. Deploy. Create the last step, which is the migration to drop the field from the database. On Thu, Jun 20, 2019 at 6:20 PM Matthieu Rudelle <m.rude...@artmyn.com> wrote: > Thank you for the quick answer, although I am not sure what the second > step mean and how it actually solves the problem? > > The missing column error appears even when no backward migration is > called. Both version of the app run side by side, both connected to a > single DB migrated with the new code. So when the 3 step is called, the > older release will fail. > > Best, > Matthieu > > On Thursday, June 20, 2019 at 3:07:54 PM UTC+2, Aldian Fazrihady wrote: >> >> My solution to this problem was by adding more migrations steps: >> 1. Step to make the field nullable. >> 2. Backward step to fill value to the removed field. >> 3. Step to remove the field. >> >> Regards, >> >> Aldian Fazrihady >> >> >> On Thu, 20 Jun 2019, 19:37 Matthieu Rudelle, <m.ru...@artmyn.com> wrote: >> >>> Hi there! >>> >>> I am about to file a feature request but I figured this might have been >>> discussed (although I can't find where). >>> >>> The use case is when removing fields in a production environment. We run >>> our django migrations without downtimes, such that basically, from time to >>> time we have an old release working on an DB migrated by the new release. >>> >>> And when we remove a field it breaks. So we're thinking there should be >>> a way to flag a field as "disabled", its value will not be requested on the >>> DB and default to a hardcoded value. No migration should remove the column >>> yet. Once the field is actually removed the column can be safely removed >>> without breaking the old version. >>> >>> What do you guys think? Is there a better way to solve this? >>> >>> *Note: a slightly different usecase that it could solve, the third item >>> on this wishlist: * >>> https://pankrat.github.io/2015/django-migrations-without-downtimes/#django-wishlist >>> >>> Best, >>> Matthieu >>> >>> -- >>> 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...@googlegroups.com. >>> To post to this group, send email to django...@googlegroups.com. >>> Visit this group at https://groups.google.com/group/django-users. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-users/CANP1NSx%3DRu63c2vR4R%3DfbtBEHV3WRqf1XxWtN%3Dd23j3VoA-ZZw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/django-users/CANP1NSx%3DRu63c2vR4R%3DfbtBEHV3WRqf1XxWtN%3Dd23j3VoA-ZZw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > 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+unsubscr...@googlegroups.com. > To post to this group, send email to django-users@googlegroups.com. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/420f1671-2c31-428b-b96b-02f840df2df5%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/420f1671-2c31-428b-b96b-02f840df2df5%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- George R. C. Silva -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAGyPVTt9BUXWd%3Df-myfD7OVQbwUy8s8ziUa22wM_07P1GK7PZQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.