Quick Start Guide

Get up and running with MigratorXpress in 5 minutes.

Prerequisites

  1. MigratorXpress Binary: Download the appropriate binary for your platform:
    • Windows: MigratorXpress.exe
    • Linux: MigratorXpress
  2. Database Access: Ensure you have connection details for source and target databases
  3. FastTransfer: Required for data transfer tasks - download FastTransfer binaries for your platform:
    • Windows: FastTransfer_win-x64_vX.X.X
    • Linux: FastTransfer_linux-x64_vX.X.X

Step 1: Create Credentials File

Create a JSON file with your database connection details:

{
  "ds_oracle_01": {
    "ds_type": "oracle",
    "auth_mode": "classic",
    "info": {
      "username" : "oracle_01_user",
      "password" : "oracle_01_pass",
      "server" : "oracle_01-server.com",
      "port" : 1521,
      "database" : "oracle_01_db",
      "lib_dir" : "C:\\Sources\\Oracle\\instantclient_19_25"
    },
  },
  "ds_oracle_02": {
    "ds_type": "oracle",
    "auth_mode": "classic",
    "info": {
      "username" : "oracle_02_user",
      "password" : "oracle_02_pass",
      "server" : "oracle_02-server.com",
      "port" : 1521,
      "database" : "oracle_02_db",
    },
  },
  "ds_netezza": {
    "ds_type": "netezza",
    "auth_mode": "classic",
    "info": {
      "username" : "nz_user",
      "password" : "nz_pass",
      "server" : "172.16.17.5",
      "port" : 5480,
      "database" : "nz_db"
    }
  },
  "ds_postgres": {
    "ds_type": "postgres",
    "auth_mode": "classic",
    "info": {
      "username" : "pg_user",
      "password" : "pg_pass",
      "server" : "localhost",
      "port" : 5432,
      "database" : "pg_db"
    }
  },
  "ds_ms_01": {
    "ds_type": "mssql",
    "auth_mode": "classic",
    "info": {
      "username" : "ms_01_user",
      "password" : "ms_01_pass",
      "server" : "toto.titi.tata.fr",
      "port" : 1433,
      "database" : "ms_01_db"
    }
  },
  "ds_02_ms": {
    "ds_type": "mssql",
    "auth_mode": "classic",
    "info": {
      "username" : "ms_02_user",
      "password" : "ms_02_pass*",
      "server" : "localhost",
      "port" : 1433,
      "database" : "migratorxpress_log_db"
    }
  }
}

Save this as credentials.json in a secure location.

For Oracle databases, an optional entry is lib_dir for the client library directory path. This thick mode is only required for older versions of Oracle database (<=11.2). Later version support both thin and thick modes.

Step 2: Full Migration

Run a complete migration with schema and data:

Windows (PowerShell)

.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_oracle `
  --source_db_name ORCL `
  --source_schema_name HR `
  --target_db_auth_id target_postgres `
  --target_db_name hrdb `
  --target_schema_name hr_migrated `
  --migration_db_auth_id migration_tracker `
  --fasttransfer_dir_path ./FastTransfer_win-x64_v0.12.4/ `
  --n_jobs 4 `
  --fasttransfer_p=2 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true

Linux

./MigratorXpress --auth credentials.json \
  --source_db_auth_id source_oracle \
  --source_db_name ORCL \
  --source_schema_name HR \
  --target_db_auth_id target_postgres \
  --target_db_name hrdb \
  --target_schema_name hr_migrated \
  --migration_db_auth_id migration_tracker \
  --fasttransfer_dir_path ./FastTransfer_linux-x64_v0.12.4/ \
  --n_jobs 4 \
  --fasttransfer_p=2 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true

Step 3: Add Constraints

After data migration, add constraints in a separate step:

Windows (PowerShell)

.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_oracle `
  --source_db_name ORCL `
  --source_schema_name HR `
  --target_db_auth_id target_postgres `
  --target_db_name hrdb `
  --target_schema_name hr_migrated `
  --migration_db_auth_id migration_tracker `
  --task_list copy_pk copy_ak copy_fk

Linux

./MigratorXpress --auth credentials.json \
  --source_db_auth_id source_oracle \
  --source_db_name ORCL \
  --source_schema_name HR \
  --target_db_auth_id target_postgres \
  --target_db_name hrdb \
  --target_schema_name hr_migrated \
  --migration_db_auth_id migration_tracker \
  --task_list copy_pk copy_ak copy_fk

Advanced: Multi-Schema Migration (v0.6.12+)

New in v0.6.12: Migrate multiple schemas matching a pattern in a single run.

Windows (PowerShell)

.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_oracle `
  --source_db_name ORCL `
  --source_schema_name "APP_%" `
  --target_db_auth_id target_postgres `
  --target_db_name hrdb `
  --migration_db_auth_id migration_tracker `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.12.4\ `
  --n_jobs 4 `
  --fasttransfer_p=2 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true

Linux

./MigratorXpress --auth credentials.json \
  --source_db_auth_id source_oracle \
  --source_db_name ORCL \
  --source_schema_name "APP_%" \
  --target_db_auth_id target_postgres \
  --target_db_name hrdb \
  --migration_db_auth_id migration_tracker \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.12.4/ \
  --n_jobs 4 \
  --fasttransfer_p=2 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true

This will migrate all schemas starting with “APP_” (e.g., APP_SALES, APP_HR, APP_INVENTORY) from Oracle to PostgreSQL, creating corresponding target schemas automatically.

Pattern Examples:

  • "APP_%" - All schemas starting with APP_
  • "%PROD%" - All schemas containing PROD
  • "DATA_2024%" - All 2024 data schemas
  • "APP_%, TENANT_%" - Multiple patterns (comma-separated)

Next Steps