About Archaeologist: Oracle PL/SQL System Analyzer
Map legacy Oracle banking code before you migrate
Banks running old Oracle PL/SQL core systems spend months finding out by hand what depends on what before they can change or migrate anything. Archaeologist automates that analysis. It connects to Oracle with a read-only account, reads the database's own catalog of objects, dependencies and source code, parses the PL/SQL, and builds a knowledge graph in Postgres. Every edge in the graph records where it came from. Anything the tool can't prove is recorded as a flag, never as a guessed link. Everything runs on your own servers, and the source code never leaves the building. Features Extraction: 10 Oracle extractors covering objects, dependencies, source, triggers, constraints, scheduler jobs, synonyms, security grants, auditing and compile errors. PL/SQL parser: finds which procedures read and write which tables and which procedures call which, flags dynamic SQL, detects risky patterns such as WHEN OTHERS THEN NULL and commits inside loops, and records the units it can't parse. Analysis: column-level lineage, inferred foreign keys, change hotspots and code churn, impact analysis, security review, and snapshot comparisons between runs. Business-rule extraction: a local LLM (Ollama, qwen2.5-coder) turns PL/SQL logic into readable business rules, with a rule register. No cloud AI is needed. Web UI (React/TypeScript), 25+ screens: dashboard, graph explorer, impact analysis, read/write matrix, data model, flows, findings, hotspots, security, migration planning, generated documentation (English and Russian), and a DB health page. API: REST plus an MCP server, so AI assistants can query the graph directly. Exports: XLSX, DOCX, CSV, JSON and Markdown reports. Local setup: Docker Compose starts everything, including a seeded Oracle XE database with a synthetic core-banking schema and a golden file of expected results for testing. Tech stack Python 3.12 (FastAPI, SQLAlchemy, python-oracledb), PostgreSQL, React + TypeScript, Docker Compose, Ollama. Size and status About 100k lines of code and 327 passing automated tests. It's a working MVP, tested against the synthetic database, not a production deployment. Remaining work: The PL/SQL parser needs to ignore comments and string literals before it detects reads and writes. A few tests fail, and there are lint and type-check errors to clear. A separate operations module has its backend built but no UI yet. What's included Full source code, the architecture plan and phased build plan, test data and golden test files, Docker setup, and transfer of IP rights.
Project details
Built with: TypeScript,Python,JavaScript,PLSQL,Shell,CSS,HTML,PLpgSQL,Dockerfile,Makefile,Nix
Website: https://github.com/haykdevx/archeologist
Video 1: https://youtu.be/1vDfV9lBexs
Next step: <p>Immediately: the extractor is built to point at a real system — one environment variable switches from the bundled demo database to a live Oracle instance, using a read-only account. The fastest proof of value is to run it against one real estate and show the dependency graph to the people who own that system.</p><p><br></p><p>Turn it into revenue three ways: sell migration assessments as a service and use the tool to do them in days instead of months; license it per estate to banks running Oracle core systems; or sell it to the consultancies already doing these migrations by hand.</p><p><br></p><p>Product extensions already scaffolded: the operations module (SQL worksheet, tamper-evident audit ledger, governed deploy with rollback) has a working backend and needs a UI. The rule-extraction layer can be pushed further into generating test cases and written requirements for the replacement system.</p><p><br></p><p>Beyond Oracle: the graph model isn't Oracle-specific. The same approach fits DB2, SQL Server or Informix estates — the extractors are the only part that would change.</p><p><br></p><p>Beyond banking: any organisation sitting on decades of PL/SQL — insurers, telco billing, government systems, large ERP installs.</p>