Add a db verson upgrade assistant
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 37.4k
- Forks
- 3k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 73
Description
What problem will this feature address?
Manually updating database major versions is exhausting as it requires one to stop containers, export data, create new containers and import data via commands that are all but easy to remember when not dealing with this type of task every day. On the other hand, this task is somewhat automatable (at least for postgres).
Describe the solution you'd like
It would be hugely helpful to have an assistant built in to easily perform the required steps for updating a database's major version – e.g. updating from postgres:15-alpine to postgres:17-alpine.
This assistant would then perform the needed steps to export all data, stop the db container, create a new db container, import the data and then clean up the data export.
Describe alternatives you've considered
Manually looking up and running the required commands each time.
Additional context
One thing to think of would be breaking changes; afaik in postgres this is a non-issue as all the pgdump related stuff appears to be quite stable and is rarely changing. I don't now about other database types though – maybe one needs to investigate if there's a stable cross-version approach for updating there too.
Also, I guess, the assistant could easily just cancel the upgrade process if anything goes wrong (e.g. the data import does not complete successfully for some reason); all that the assistant would need to do is restart the old db container and clean up everything else. In this case, of course, the error output should be clearly presented to the user – maybe every command's and its output should be presented to make the process entirely transparent (just as Dokploy does for deployments).
Additionally it may make sense to keep around the volume where the old data is stored on for a while in case users want to revert the update.
Will you send a PR to implement it?
No
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by mapping how database containers and volumes are currently managed, then investigate the PostgreSQL export, replacement, import, rollback, and cleanup workflow. Done would require a defined, transparent upgrade assistant with safe failure handling and retained old data for recovery.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, postgresql
- Domain
- databases, devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100