Docker image to help with PostgreSQL major versions migration
.gitignore | ||
build.sh | ||
Dockerfile | ||
migrate.sh | ||
README.md |
Docker migration helper
This repo contains a Dockerfile
that can helps you in performing your Docker images migration.
This repository will:
- Perform a temporary copy the old database
- Initialize a new empty database with the default user / password couple provided as environment variables (
POSTGRES_USER
andPOSTGRES_PASSWORD
) - Run
pg_upgrade
from the copy of the old database to the new database - Replace the old database with the new one
- Move the copy of the old database as sub-directory of the new database (in
old_db
directory, to allow rollback in case of failure)
Perform the migration
Create an outdated database:
mkdir test-db
docker run --rm --name testdb -u 1000 -e POSTGRES_PASSWORD=password -v $(pwd)/test-db:/var/lib/postgresql/data -it postgres:16
Perform the migration (you need to replace POSTGRES_USER
and POSTGRES_PASSWORD
with the credentials of the root user of the database):
docker run -u 1000 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password -v $(pwd)/test-db:/db --rm -it pierre42100/postgresmig:16to17