Hi
We have a cloud native application in Azure, the stack is python back and and react front end. At the moment the application changes are coupled with the database changes on the same pipeline, a separate tool is being used to push database changes and the tool is closely tied onto application build and release, I am trying to achieve 2 things, be able to rollback database code independently and also implement a blue/green release process.
In the scenario where application build 103 is deployed onto an environment, the tool updates the database version to version/build 103, let us assume there are issues with the deployment of build version 103 onto that environment and a rollback needs to happen (rollback to version 102), in this situation the database code for version 103 needs to be rolled back and so is the application code for version 103, the issue we have is that it can sometimes take a long time to ascertain that there is an issue with a release, at which point rolling back can cause data loss.
What I would like to implement is an independent release process for databases using Azure pipelines, here the database code can have its on separate repository where database changes can be applied independently on specific environments. I would like to understand how others deal with database releases where its closely tied to the application.
Thanks in advance.