Skip to content

Dockerfile for ora2pg Oracle to PostgreSQL migration tool

Notifications You must be signed in to change notification settings

sparebank1utvikling/ora2pg

 
 

Repository files navigation

ora2pg Docker

Container image for migrating from oracle (or mysql/mariadb) to postgresql database.

Tags and Releases

Tags are created for each release. Tag names relate to their respective ora2pg release.

Introduction

This container can be used to migrate from Oracle (or mysql/mariadb) to PostgreSQL utilizing the tool ora2pg.

Documentation: https://ora2pg.darold.net/documentation.html

Thanks to Gilles Darold for this awesome tool!!

How to build

docker build . -t ora2pg

How to run

Usage:

The container accepts 2 mounted folders

  • "/config" (read only) --> mount your folder containing the "ora2pg.conf" file here (example configuration: ora2pg.conf
  • "/data" --> mount the folder where all output should be written to here

Run the container with:

docker run  \
    --name ora2pg \
    -it \
    -v /path/to/local/config:/config \
    -v /path/to/local/data:/data \
    georgmoser/ora2pg

If no arguments are passed, the default run will be:

ora2pg --debug -c /config/ora2pg.conf

Custom arguments may be passed to the ora2pg call using:

docker run  \
    --name ora2pg \
    -it \
    -v /path/to/local/config:/config \
    -v /path/to/local/data:/data \
    georgmoser/ora2pg \
    ora2pg [[ARG1..ARGN]]

Furthermore the

  • CONFIG_LOCATION: ora2pg config file location (inside the container)
  • OUTPUT_LOCATION: output directory of dump (inside the container)
  • ORA_HOST: Oracle datasource; the same as ORACLE_DSN in ora2pg.conf; if no value provided, ORACLE_DSN will be used.
  • ORA_USER: Oracle user; the same as ORACLE_USER in ora2pg.conf; if no value provided, ORACLE_USER will be used.
  • ORA_PWD: Oracle password; the same as ORACLE_PWD in ora2pg.conf; if no value provided, ORACLE_PWD will be used.

can be passed via environment variables:

docker run  \
    --name ora2pg \
    -e CONFIG_LOCATION=/config/myconfigfile.conf  \
    -e OUTPUT_LOCATION=/data/myfolder  \
    -e ORA_HOST=dbi:Oracle:host=mydb.mydom.fr;sid=SIDNAME;port=1521  \
    -e ORA_USER=system  \
    -e ORA_PWD=secret  \
    -it \
    -v /path/to/local/config:/config \
    -v /path/to/local/data:/data \
    georgmoser/ora2pg 

or with a docker-compose:

version: '3.3'
services:
  ora2pg:
    container_name: ora2pg
    environment:
      - CONFIG_LOCATION: "/config/myconfigfile.conf"
      - OUTPUT_LOCATION: "/data/myfolder"
      - ORA_HOST: "dbi:Oracle:host=mydb.mydom.fr;sid=SIDNAME;port=1521"
      - ORA_USER: "system"
      - ORA_PWD: "secret"
    volumes:
      - '/path/to/local/config:/config'
      - '/path/to/local/data:/data'
    image: georgmoser/ora2pg

GUI

If you are looking for a graphical interface for ora2pg, take a look at visulate-ora2pg

MySql/MariaDB

The exact same setup works for MySql/MariaDB as well, the only thing you need to do is to add the parameter

 --mysql

to the commands above. For example

ora2pg --debug --mysql -c /config/ora2pg.conf

About

Dockerfile for ora2pg Oracle to PostgreSQL migration tool

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Perl 99.2%
  • Other 0.8%