Skip to content

docs: warn that v4 removes the bundled postgres and document the migration - #1121

Merged
dkrizan merged 3 commits into
mainfrom
dkrizan/slim-ee-image
Jul 28, 2026
Merged

docs: warn that v4 removes the bundled postgres and document the migration#1121
dkrizan merged 3 commits into
mainfrom
dkrizan/slim-ee-image

Conversation

@dkrizan

@dkrizan dkrizan commented Jun 22, 2026

Copy link
Copy Markdown
Member

What

Two changes:

  1. platform/self_hosting/running_with_docker.mdx — warns that Tolgee v4 removes the bundled PostgreSQL from the tolgee/tolgee image, and adds a Migrate from the bundled database section with the actual procedure.
  2. .github/workflows/update-generated-code.yaml — the docs codegen job booted ghcr.io/tolgee/tolgee-ee standalone and relied on its embedded postgres. The EE image is becoming slim (no bundled DB), so the job now starts a postgres service and points the app at it.

Why

In v4 the bundled postgres goes away, so anyone running it has to move to an external database first. The good news is that this needs no dump and restore: the bundled server keeps its files in data/postgres on the volume users already mount, which is exactly where a separate postgres container looks for them. Pin the container to postgres:13 and it adopts the directory in place.

This also fixes a live trap. The existing external-database example runs postgres:15 and mounts ./data/postgres:/var/lib/postgresql/data — the same directory a bundled user already has. Copy-pasting it as a migration fails hard:

FATAL:  database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 13,
        which is not compatible with this version 15.17

That example is fine for fresh installs and now says it's for fresh installs.

Verified end-to-end

Against the real tolgee/tolgee:v3.212.0 image, not by reasoning:

  • Booted with the bundled DB, confirmed PG_VERSION is 13 at data/postgres, created a marker translation key via the API.
  • postgres:15 on that directory → exits(1), incompatible-files error above.
  • postgres:13 on that directory → starts, all 103 tables intact.
  • Tolgee with postgres-autostart.enabled=false against the external postgres:13 → boots, starts no embedded server, original admin password still works, marker key still present.

Notes for review

@netlify

netlify Bot commented Jun 22, 2026

Copy link
Copy Markdown

Deploy Preview for tolgee-docs ready!

Name Link
🔨 Latest commit 9fe83f2
🔍 Latest deploy log https://app.netlify.com/projects/tolgee-docs/deploys/6a68baba0436900009dbd60d
😎 Deploy Preview https://deploy-preview-1121--tolgee-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@dkrizan
dkrizan force-pushed the dkrizan/slim-ee-image branch 2 times, most recently from 1d35a59 to a28eeb1 Compare June 23, 2026 09:54
@dkrizan
dkrizan force-pushed the dkrizan/slim-ee-image branch 2 times, most recently from ed5bbe2 to 8854090 Compare July 16, 2026 13:45
@dkrizan dkrizan changed the title docs: document slim Docker image and run codegen against external postgres docs: warn that v4 removes the bundled postgres Jul 16, 2026
@dkrizan
dkrizan marked this pull request as ready for review July 16, 2026 14:29
@dkrizan
dkrizan force-pushed the dkrizan/slim-ee-image branch 4 times, most recently from 4faf2c2 to 5b64a9a Compare July 16, 2026 14:51
@dkrizan dkrizan changed the title docs: warn that v4 removes the bundled postgres docs: warn that v4 removes the bundled postgres and document the migration Jul 16, 2026
@dkrizan
dkrizan force-pushed the dkrizan/slim-ee-image branch from 5b64a9a to 958696d Compare July 17, 2026 10:03
The EE image is becoming slim and bundles no postgres server, so the job needs
a database of its own. Postgres 13 went end of life in November 2025.
@dkrizan
dkrizan force-pushed the dkrizan/slim-ee-image branch 2 times, most recently from e9d063d to 58f7476 Compare July 17, 2026 11:28
@dkrizan
dkrizan requested review from Barush and JanCizmar July 17, 2026 11:37
Comment thread platform/self_hosting/running_with_docker.mdx Outdated
…ation

The bundled server is PostgreSQL 13, end of life since November 2025, so the
migration leads with a dump into PostgreSQL 17 and keeps reusing the existing
files on 13 as the quicker alternative.

The external database example sets up an empty database, which is the wrong
thing to copy for a migration: a newer PostgreSQL refuses to start on the files
the bundled server leaves behind.
@dkrizan
dkrizan force-pushed the dkrizan/slim-ee-image branch from 7374ad7 to 8885223 Compare July 28, 2026 14:19
@dkrizan
dkrizan merged commit 8497eb0 into main Jul 28, 2026
6 checks passed
@dkrizan
dkrizan deleted the dkrizan/slim-ee-image branch July 28, 2026 14:44
dkrizan added a commit to tolgee/tolgee-platform that referenced this pull request Jul 28, 2026
## What

Two changes, both preparing for v4 dropping the bundled postgres from
`tolgee/tolgee`:

1. **Deprecation warning** — the app logs a `WARN` on startup when it's
actually running the bundled postgres, pointing at the external-database
docs.
2. **Internal slim image** — `Dockerfile.slim` + the `dockerSlim` Gradle
task. Not published. Built on demand by the EE image build and by the
smoke test.

## Why

In v4, `tolgee/tolgee` loses the embedded postgres. Self-hosters running
the bundled database have to move to an external one before upgrading.

They can already do that today on the current image by setting
`postgres-autostart.enabled=false` (this is what the external-database
docs section has always described). So the warning gives them a full
release cycle of notice, on every boot, for a migration that needs
nothing new from us.

The slim image is deliberately **not** published: a public `:slim` tag
would only advertise a name that goes obsolete the moment v4 makes it
the default, and it buys users nothing they can't already do. It exists
so the internal EE image can drop the postgres layers now.

## Notes for review

- No behavior change for existing users beyond the log line. The default
`Dockerfile` and the `tolgee/tolgee` tag are untouched.
- The warning is guarded on `enabled=true` **and** `mode=EMBEDDED`, so
it stays silent for external-database setups and for Java + `DOCKER`
autostart (that mode isn't going away).
- `docker-slim-smoke` boots the slim image against a postgres service
and waits for `/actuator/health`.
- Docs: tolgee/documentation#1121 · EE image switch: tolgee/billing#274
- Revives #3193 (stale). Thanks @transparentChange for the original
work.

---------

Co-authored-by: Matthew Sekirin <matthew.sekirin@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
TolgeeMachine added a commit to tolgee/tolgee-platform that referenced this pull request Jul 30, 2026
# [3.215.0](v3.214.1...v3.215.0) (2026-07-30)

### Features

* auto-invalidate caches by value shape instead of wiping on startup ([#3813](#3813)) ([7e1db10](7e1db10))
* Community translation v1.1 — Contributors (pitch [#3806](#3806)) ([#3819](#3819)) ([3232c4f](3232c4f))
* deprecate embedded postgres ahead of v4 ([#3610](#3610)) ([3cef7ad](3cef7ad)), closes [tolgee/documentation#1121](tolgee/documentation#1121) [tolgee/billing#274](tolgee/billing#274) [#3193](#3193)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants