Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
As a Fineract administrator
I would like to deploy new Fineract database schema versions and new Fineract application versions independently from each other
In order to have more control over the overall deployment process.
Background
New Fineract versions should be deployed according to the below:
- first, run an independent Fineract instance, that does the Liquibase migrations and then exits without starting Fineract itself
- second, run the actual deployment, starting the new Fineract instances with the new versions of the software, but with Liquibase disabled
This approach would work nicely with Helm pre-install hooks, as well as it would make it possible to execute the “database administration tasks” and the “application administration tasks” independently, as our clients desire.
Acceptance criteria
- have the capability to deploy and upgrade the Fineract database schema without actually running the Fineract service
- have the capability to deploy a new Fineract service version without upgrading the database schema (this feature already exists)
Suggested implementation
To support this, we would need a new Fineract configuration parameter, e.g. spring.liquibase.exit-after-migration, that can be set via an environment variable, and that would stop the Fineract startup process after the Liquibase migration. The exit code of the process if this variable is set should reflect the success state of the Liquibase migration.