Migration from Django version 1.9 to version 2 and above

The application I am working on needs a Django version upgrade as per the client’s requirement. It currently runs on Django 1.9.12 and we wish to upgrade it to version 2 and above.

I am a complete newbie as far as version migrations are concerned, would really appreciate any kind of help(tutorials, personal experiences) to help me out here.

As far as my approach is concerned, I am thinking to downgrade it first to 1.10 and then upgrade it to the 1.11 LTS version and then think about upgrading it to 2.2. One thing to be noted here is the Python version we are using here is version 2.7.18.

Counting on the helping hands of the community!

Did you see the docs page on upgrading? Upgrading Django to a newer version | Django documentation | Django

Once you get to 1.11 you’ll need to upgrade to Python 3. Do that as a standalone step. It can be quite complicated. When I did it in 2016 I wrote this blog post: Upgrading YPlan to Python 3 with Zero Downtime - Adam Johnson . You might not need the zero downtime approach but some of the tools there are useful. Another tool you can use these days is pyupgrade.

Be careful with your third party dependencies. From such an old version it’s unlikely you can jump to their latest versions. You might have to upgrade to in between versions as you step up. Read their changelogs to find their Django support information.

Test coverage is also really useful for upgrading - make sure you have as much test coverage as you have time for before you start changing the Django version.

Hope that helps, and good luck!

1 Like