Dokploy / Dokploy/dokploy

Add a db verson upgrade assistant

Open
#2,368 0 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.