
1,240 from ungh; api.github.com's ten-week-old snapshot gives 1,224 stars · GPL-3.0, read from /blob/master/LICENSE, standard and unmodified, and the file names no project copyright holder, only the Free Software Foundation boilerplate. · v25.0 of 2025-04-20 — EIGHTEEN MONTHS. The release page reads '20 Apr 15:05' with no year and the year was settled TWICE: ungh's releases endpoint gives 2025-04-20T15:05:16Z and the release notes heading itself reads '2025 04 20 - v25.0'. Prior: v24.3 of 2024-03-28, v24.2 of 2024-03-07, v24.1 of 2023-09-08. MetaCPAN was unreachable on both the release and distribution paths. · Track this in Scout
Reads an Oracle database, writes the PostgreSQL version of its schema and data, and prints an estimate of how many person-days the whole migration would take.
▶Repo detailsthe review · specs · pros & cons · install
What it does
You give it a connection to the Oracle database. It reads the schema — tables, views, indexes, constraints, sequences, stored procedures — and writes PostgreSQL statements to a file. You then load that file with psql yourself; it does not create the objects itself. Data export is the exception: if you also give it a PostgreSQL connection it will load the rows directly, in chunks, 10,000 rows at a time by default. It attempts to convert PL/SQL into PL/pgSQL, Oracle's and PostgreSQL's respective stored-procedure languages. Before any of that, it will produce a migration report: what is in the database, what will convert cleanly, what will not, and an estimate in person-days using a cost unit of five minutes per difficulty point. A project scaffold command writes out a folder with export and import shell scripts ready to edit. What it does not do is finish the job: the README says the PL/SQL conversion is basic and "there's still manual work to do", and partitions are converted using inheritance and triggers rather than PostgreSQL's native partitioning.
Why it matters
Who it suits. Anyone paying for Oracle who has wondered what leaving would cost, and anyone who has been told the migration is impossible and would like a number instead of an opinion. It also suits consultants scoping the same work, which is what the cost estimate exists for. Skip it if you have no Oracle database; everything here is specific to that one migration.
Verdict. Run the assessment report even if you never migrate — it is read-only, it takes about an hour once the Oracle client libraries are installed, and the output is the most useful thing in this edition for anyone in that situation. Note the shape of the project before depending on it: it is fourteen years old with 3,109 commits, its last release was 20 April 2025 and its last code change 28 September 2026, so it is alive and slow rather than finished. About a hundred open issues against essentially one maintainer is the risk to name. The install is the hard part, not the tool: the Oracle client libraries must be installed and two environment variables set before the Perl database driver will even build. dimitri/pgloader at 6,472 stars is the alternative for moving data from several sources, but it has nothing like the cost estimate.
- The migration assessment report gives a person-day estimate before you commit to anything, and changes nothing.
- The README publishes real defaults and limits, which is rare: chunk sizes, sampling counts, exit codes.
- Fourteen years of handling Oracle's edge cases, which is exactly the knowledge you cannot write yourself.
- Installing it means installing Oracle's own client libraries first and setting
ORACLE_HOMEandLD_LIBRARY_PATHbefore building the Perl driver. - Configuration directives are separated by a tab character, not spaces, and a repeated single-value directive silently keeps only the last.
- Partitions convert to inheritance and triggers rather than native PostgreSQL partitioning, and its own documentation gives two different thresholds for when a migration moves up an assessment level.
- dimitri/pgloader
Loads data into PostgreSQL from several source databases, at 6,472 stars; better for the data, with no schema assessment.
Track this in Scout - yugabyte/yb-voyager
A migration tool from a distributed-PostgreSQL vendor, at 58 stars, with code on 12 October 2026; very small, and tied to that vendor's destination.
Track this in Scout
export ORACLE_HOME=/usr/lib/oracle/12.2/client64 export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib perl -MCPAN -e 'install DBD::Oracle'
