Django is a framework that's been around for more than 15 years, which makes for enough legacy projects to deal with.
In this talk we'll show practical tips and tricks for how to get Django from legacy to latest & greatest.
As developers, we love working with the latest version of our favorite tools & frameworks.
But sometimes, we have to deal with legacy projects & since Django has been around for more than 15 years - there are plenty of legacy Django projects to work with.
We either inherit one, or, somehow, we start with good intentions, but things deteriorate and we end up running Django that’s 2 or 3 major versions behind.
No matter how we end up in that legacy situation, we usually have 2 choices:
- Stay within the boundaries of the existing project.
- Try upgrading Django & the rest of the dependencies.
This talk will cover point 2, giving practical advice, derived from experience of migrating large legacy Django projects from versions 1 & 2, all the way to latest & greatest.
We will approach the problem in a structured way, going through different scenarios and showing practical steps, tips & tricks, so a human can deal with the challenges of upgrading a legacy Django project.
We will talk about starting from scratch vs. gradually upgrading.
The talk will cover the following topics:
- We will start with the most important question - How reckless can we be?
- Is this in production?
- Is this mission critical?
- Is backwards compatibility important?
- Are there tests? Automated? Test cases? Documentation?
- Are we building from scratch or are we gradually upgrading?
- Next, we will go through various scenarios.
- We are dealing with Django 2. What now?
- We are dealing with Django 1 & Python 2. What now?
- There are core dependencies that are no longer supported. What now?
- Finally, after we managed to get to Django 4, we will talk about how not to end up in the same situation again.
The end goal of the talk is to show that keeping up to date is possible, even if we start with a big legacy project.
The talk should serve as inspiration & example for those, who want to push their legacy Django projects forward.