I'm trying to introduce GitOps in our company. Mostly we have microservices written in Django (However, it could be any other web framework). I have a conceptual problem with the database migrations. Forward migrations are easy: you run them as a job or an init container or hooks in helm. However what about backward migrations? Let's say I want to make rollback from v1.1 to v1.0 and I have some migrations to unapply. And now what? I wanted to use argo cd or flux.
There is a really nice article: https://www.weave.works/blog/how-to-correctly-handle-db-schemas-during-kubernetes-rollouts. However, it requires some discipline which you don't have in Django