Skip to main content

The only bidirectional Oracle <-> PostgreSQL migration tool

Project description

SteinDB

The only bidirectional Oracle <-> PostgreSQL migration tool

License: BSL 1.1 Tests: 1,643 passing Golden Tests: 870+ Python 3.12+ i18n: 18 languages


Terminal Demo

$ stein --version
SteinDB CLI v0.1.0

$ stein scan sample.sql --output table

SteinDB -- Oracle -> PostgreSQL Migration
================================================
Scanned: 10 objects in 0.3s

Object          Type        Schema  Complexity  Status
--------------- ----------- ------- ----------- ------
employees       TABLE       hr      2           Low
emp_seq         SEQUENCE    hr      1           Low
trg_emp_bi      TRIGGER     hr      4           Medium
active_emps     VIEW        hr      3           Low
get_salary      FUNCTION    hr      5           Medium

Summary: 8 auto-convertible, 2 need AI assistance
Savings estimate: ~$180K/year in Oracle licensing

$ stein convert sample.sql --output converted/ --mode rules
Converting... ======================== 100%
Converted: 8/10 objects (rules), 2 forwarded to AI
Output: converted/

$ stein verify converted/
All 8 conversions: GREEN (confidence: 100%)

Quick Start

pip install steindb && stein scan sample.sql

That's it. No Oracle Client needed, no account required, works offline.

# Scan your Oracle schema
stein scan your-oracle-export.sql

# Convert with deterministic rules only (no AI, fully offline)
stein convert your-oracle-export.sql --output ./converted/ --rules-only

# Convert with AI assistance (BYOK -- your API keys)
export STEIN_API_KEY=sk-your-openai-key
stein convert your-oracle-export.sql --output ./converted/ --model gpt-4o

# PostgreSQL to Oracle (reverse direction)
stein convert --direction pg_to_oracle your-pg-export.sql --output ./converted/

# Verify the converted output
stein verify ./converted/

# Generate an HTML report
stein report ./converted/

Features

  • Bidirectional -- Oracle to PostgreSQL AND PostgreSQL to Oracle. The only tool that does both.
  • 90%+ automation -- Deterministic rules handle the majority with 100% accuracy. AI handles the remaining 10%.
  • Built-in verification -- Every converted object gets a confidence score (0.0-1.0). Syntax-checked, EXPLAIN dry-run tested, structurally compared.
  • Works offline -- Rules-only mode runs entirely on your machine. No cloud, no network calls, no data leaving your environment.
  • BYOK (Bring Your Own Key) -- Use GPT-4o, Claude, Gemini, or local models via Ollama. Your code never touches our servers.
  • 870+ golden test pairs -- Every accuracy claim is verifiable. Run stein test --golden yourself.
  • Handles the hard parts -- CONNECT BY, PL/SQL packages, AUTONOMOUS_TRANSACTION, Oracle empty string = NULL, and the other "silent killers" that break migrations.

Comparison

Feature SteinDB Ora2Pg AWS SCT
Automation rate 90%+ 40-60% 40-60%
PL/SQL conversion Rules + AI Limited Limited
Bidirectional (PG to Oracle) Yes No No
Verification with confidence scores Yes No No
Offline mode Yes Yes No
BYOK model support Yes N/A N/A
CONNECT BY handling Automated Manual Partial
Package decomposition Automated Manual Manual
Silent bug detection 7 static analysis rules No No
Price (CLI) Free Free AWS account required
Source available Yes (BSL 1.1) Yes (PostgreSQL license) No

Supported Conversions

35 rule modules covering 870+ constructs in both directions:

Category Examples Status
Data Types VARCHAR2, NUMBER, DATE, CLOB, BLOB (23 Oracle / 15 PG types) Fully automated
Functions NVL, DECODE, SYSDATE, NVL2, ROWNUM Fully automated
DDL CREATE TABLE, ALTER TABLE, indexes, constraints, sequences Fully automated
PL/SQL Procedures, functions, packages, triggers, exceptions Rules + AI
DML CONNECT BY, MERGE, (+) joins, analytic functions Rules + AI
Static Analysis Empty string = NULL, DATE vs TIMESTAMP, SELECT INTO bugs 7 detection rules

Internationalization

SteinDB CLI supports 18 languages: English, Japanese, Korean, Chinese (Simplified & Traditional), German, French, Portuguese (Brazil), Spanish, Hindi, Indonesian, Thai, Vietnamese, Turkish, Italian, Dutch, Polish, and Arabic.

Set your language:

export STEIN_LOCALE=ja  # Japanese
stein scan sample.sql

Pricing

The CLI tool is free and open source (BSL 1.1). Rules-only mode works offline with no account required.

Paid tiers add AI-assisted conversion, team collaboration, and managed cloud features.

Cloud Service (Coming Soon)

SteinDB Cloud is an upcoming managed platform that extends the CLI:

  • Web Playground -- paste SQL and convert instantly in your browser
  • AI-Assisted Conversion -- hosted LLM inference for the ~10% the rule engine forwards
  • Team Collaboration -- invite team members, share conversions, manage API keys
  • Cloud Migration -- direct database-to-database migration between AWS RDS, GCP Cloud SQL, Azure PostgreSQL, and on-premise instances
  • Post-Migration Monitoring -- continuous PostgreSQL performance monitoring after migration
  • OAuth Login -- sign in with Google or GitHub
  • Dashboard -- conversion history, usage analytics, billing management

Links

License

SteinDB is source-available under the Business Source License 1.1.

  • You CAN: read, modify, self-host, and use in production for your own migrations.
  • You CANNOT: offer SteinDB as a competing hosted service.
  • After 4 years: each version converts to Apache License 2.0.

Same model as HashiCorp Terraform, Sentry, and CockroachDB.


Oracle is a registered trademark of Oracle Corporation. PostgreSQL is a registered trademark of the PostgreSQL Community Association of Canada. SteinDB is not affiliated with, endorsed by, or sponsored by Oracle Corporation or the PostgreSQL Global Development Group.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

steindb-0.1.0.tar.gz (301.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

steindb-0.1.0-py3-none-any.whl (151.4 kB view details)

Uploaded Python 3

File details

Details for the file steindb-0.1.0.tar.gz.

File metadata

  • Download URL: steindb-0.1.0.tar.gz
  • Upload date:
  • Size: 301.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for steindb-0.1.0.tar.gz
Algorithm Hash digest
SHA256 af8bba200865762b6e224f6174837eaeb8032a9542e1a9afd7ba7f21127f69ff
MD5 46a5aa5c2b8c0e93b46b95754aff0344
BLAKE2b-256 ce03002dffa4bcdaff9cd4d7c017e5761d6bc9e5aff88e581dd2c4c339f1ccdf

See more details on using hashes here.

File details

Details for the file steindb-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: steindb-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 151.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for steindb-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98e2d599de2ecbcd41d9f8a74c75a324a0eb5351f1d9a5983abe84d6f43d3e0d
MD5 433f7a16f1da878af3b8152d37940eca
BLAKE2b-256 79667f34ed01c5193f3299459f55f2c236f6910afd9587dc87bb86634b0ea292

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page