Examples & Use Cases

Real-world migration scenarios with complete command examples.

Oracle to PostgreSQL

Full Schema and Data Migration

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.12.4/ \
  --fasttransfer_p=2 \
  --source_db_auth_id ds_08_oracle \
  --source_db_name orclpdb1 \
  --source_schema_name TPCH_IN \
  --target_db_auth_id ds_04_pg \
  --target_db_name tpch \
  --target_schema_name tpch_1_copy \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 2 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true \
  --migration_db_mode drop

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.13.5\ `
  --fasttransfer_p=2 `
  --source_db_auth_id ds_08_oracle `
  --source_db_name orclpdb1 `
  --source_schema_name TPCH_IN `
  --target_db_auth_id ds_04_pg `
  --target_db_name tpch `
  --target_schema_name tpch_1_copy `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 2 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true `
  --migration_db_mode drop

Use Case: Complete migration of an Oracle schema to PostgreSQL with data validation.

Oracle to SQL Server

Part 1: Schema and Data

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.13.5/ \
  --fasttransfer_p=2 \
  --source_db_auth_id ds_08_oracle \
  --source_db_name orclpdb1 \
  --source_schema_name TPCH_IN \
  --target_db_auth_id ds_05_ms \
  --target_db_name target_db \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 2 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.12.4\ `
  --fasttransfer_p=2 `
  --source_db_auth_id ds_08_oracle `
  --source_db_name orclpdb1 `
  --source_schema_name TPCH_IN `
  --target_db_auth_id ds_05_ms `
  --target_db_name target_db `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 2 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true

Part 2: Constraints

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.12.4/ \
  --fasttransfer_p=2 \
  --source_db_auth_id ds_08_oracle \
  --source_db_name orclpdb1 \
  --source_schema_name TPCH_IN \
  --target_db_auth_id ds_05_ms \
  --target_db_name target_db \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 2 \
  --task_list copy_pk copy_ak

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.12.4\ `
  --fasttransfer_p=2 `
  --source_db_auth_id ds_08_oracle `
  --source_db_name orclpdb1 `
  --source_schema_name TPCH_IN `
  --target_db_auth_id ds_05_ms `
  --target_db_name target_db `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 2 `
  --task_list copy_pk copy_ak

Use Case: Two-phase migration for large Oracle databases to SQL Server, separating data transfer from constraint creation for better performance.

PostgreSQL to PostgreSQL

Database Cloning

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.12.4/ \
  --fasttransfer_p=2 \
  --source_db_auth_id ds_04_pg \
  --source_db_name tpch \
  --source_schema_name tpch_1 \
  --target_db_auth_id ds_04_pg \
  --target_db_name tpch \
  --target_schema_name tpch_1_copy \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 2 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true \
  --migration_db_mode drop

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.12.4\ `
  --fasttransfer_p=2 `
  --source_db_auth_id ds_04_pg `
  --source_db_name tpch `
  --source_schema_name tpch_1 `
  --target_db_auth_id ds_04_pg `
  --target_db_name tpch `
  --target_schema_name tpch_1_copy `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 2 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true `
  --migration_db_mode drop

Use Case: Create a copy of a PostgreSQL schema within the same or different database for testing or development.

PostgreSQL to SQL Server

Cross-Platform Migration

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.12.4/ \
  --fasttransfer_p=2 \
  --source_db_auth_id ds_04_pg \
  --source_db_name tpch \
  --source_schema_name tpch_1 \
  --target_db_auth_id ds_09_ms \
  --target_db_name tpch \
  --target_schema_name tpch1 \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 2 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true \
  --migration_db_mode drop

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.12.4\ `
  --fasttransfer_p=2 `
  --source_db_auth_id ds_04_pg `
  --source_db_name tpch `
  --source_schema_name tpch_1 `
  --target_db_auth_id ds_09_ms `
  --target_db_name tpch `
  --target_schema_name tpch1 `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 2 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true `
  --migration_db_mode drop

Use Case: Migrate PostgreSQL databases to SQL Server for consolidation or platform standardization.

SQL Server to PostgreSQL

Platform Migration

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.12.4/ \
  --fasttransfer_p=2 \
  --source_db_auth_id ds_09_ms \
  --source_db_name tpch \
  --source_schema_name tpch1 \
  --target_db_auth_id ds_04_pg \
  --target_db_name tpch \
  --target_schema_name tpch_1_copy \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 2 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true \
  --migration_db_mode drop

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.12.4\ `
  --fasttransfer_p=2 `
  --source_db_auth_id ds_09_ms `
  --source_db_name tpch `
  --source_schema_name tpch1 `
  --target_db_auth_id ds_04_pg `
  --target_db_name tpch `
  --target_schema_name tpch_1_copy `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 2 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true `
  --migration_db_mode drop

Use Case: Move from SQL Server to PostgreSQL for cost savings or open-source adoption.

Netezza to PostgreSQL

Data Warehouse Migration

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.12.4/ \
  --fasttransfer_p=4 \
  --source_db_auth_id ds_07_netezza \
  --source_db_name system \
  --source_schema_name warehouse \
  --target_db_auth_id ds_04_pg \
  --target_db_name analytics \
  --target_schema_name warehouse_pg \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 4 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true \
  --migration_db_mode drop

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.12.4\ `
  --fasttransfer_p=4 `
  --source_db_auth_id ds_07_netezza `
  --source_db_name system `
  --source_schema_name warehouse `
  --target_db_auth_id ds_04_pg `
  --target_db_name analytics `
  --target_schema_name warehouse_pg `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 4 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true `
  --migration_db_mode drop

Use Case: Migrate Netezza data warehouse to PostgreSQL for modernization and cost optimization.

Netezza to SQL Server

Analytics Platform Migration

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.12.4/ \
  --fasttransfer_p=4 \
  --source_db_auth_id ds_07_netezza \
  --source_db_name system \
  --source_schema_name analytics \
  --target_db_auth_id ds_05_ms \
  --target_db_name data_warehouse \
  --target_schema_name analytics_sql \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 4 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true \
  --migration_db_mode drop

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.12.4\ `
  --fasttransfer_p=4 `
  --source_db_auth_id ds_07_netezza `
  --source_db_name system `
  --source_schema_name analytics `
  --target_db_auth_id ds_05_ms `
  --target_db_name data_warehouse `
  --target_schema_name analytics_sql `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 4 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true `
  --migration_db_mode drop

Use Case: Move Netezza analytics workloads to SQL Server for integration with Microsoft ecosystem.

SQL Server to SQL Server

Instance Migration

Linux

MigratorXpress --auth /home/user/credentials.json \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64_v0.13.5/ \
  --fasttransfer_p=2 \
  --source_db_auth_id ds_09_ms \
  --source_db_name tpch \
  --source_schema_name tpch1 \
  --target_db_auth_id ds_05_ms \
  --target_db_name target_db \
  --target_schema_name tpch_1 \
  --migration_db_auth_id ds_02_ms \
  --n_jobs 2 \
  --task_list translate create transfer diff \
  --drop_tables_if_exists true \
  --migration_db_mode drop

Windows (PowerShell)

.\MigratorXpress.exe --auth C:\Users\user\credentials.json `
  --fasttransfer_dir_path C:\FastTransfer_win-x64_v0.13.5\ `
  --fasttransfer_p=2 `
  --source_db_auth_id ds_09_ms `
  --source_db_name tpch `
  --source_schema_name tpch1 `
  --target_db_auth_id ds_05_ms `
  --target_db_name target_db `
  --target_schema_name tpch_1 `
  --migration_db_auth_id ds_02_ms `
  --n_jobs 2 `
  --task_list translate create transfer diff `
  --drop_tables_if_exists true `
  --migration_db_mode drop

Use Case: Migrate between SQL Server instances for hardware upgrades or consolidation.

Advanced Scenarios

Incremental Data Sync

For ongoing synchronization after initial migration:

Linux

MigratorXpress --auth credentials.json \
  --source_db_auth_id source_db \
  --source_db_name prod \
  --source_schema_name sales \
  --target_db_auth_id target_db \
  --target_db_name staging \
  --target_schema_name sales_staging \
  --migration_db_auth_id migration_db \
  --task_list transfer diff \
  --migration_db_mode preserve

Windows (PowerShell)

.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_db `
  --source_db_name prod `
  --source_schema_name sales `
  --target_db_auth_id target_db `
  --target_db_name staging `
  --target_schema_name sales_staging `
  --migration_db_auth_id migration_db `
  --task_list transfer diff `
  --migration_db_mode preserve

Schema-Only Migration

For setting up empty database structures (Oracle to SQL Server only):

Linux

MigratorXpress --auth credentials.json \
  --source_db_auth_id source_db \
  --source_db_name prod \
  --source_schema_name app_schema \
  --target_db_auth_id target_db \
  --target_db_name dev \
  --migration_db_auth_id migration_db \
  --task_list translate create copy_pk copy_ak copy_fk

Windows (PowerShell)

.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_db `
  --source_db_name prod `
  --source_schema_name app_schema `
  --target_db_auth_id target_db `
  --target_db_name dev `
  --migration_db_auth_id migration_db `
  --task_list translate create copy_pk copy_ak copy_fk

Note: Constraint copying tasks (copy_pk, copy_ak, copy_fk) currently only support Oracle → SQL Server migrations. For other database combinations, create constraints manually after migration.

Parallel Large Table Migration

For databases with very large tables:

Linux

MigratorXpress --auth credentials.json \
  --source_db_auth_id source_db \
  --source_db_name warehouse \
  --source_schema_name fact_tables \
  --target_db_auth_id target_db \
  --target_db_name warehouse_new \
  --migration_db_auth_id migration_db \
  --n_jobs 8 \
  --fasttransfer_p=4 \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64/ \
  --task_list transfer diff

Windows (PowerShell)

.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_db `
  --source_db_name warehouse `
  --source_schema_name fact_tables `
  --target_db_auth_id target_db `
  --target_db_name warehouse_new `
  --migration_db_auth_id migration_db `
  --n_jobs 8 `
  --fasttransfer_p=4 `
  --fasttransfer_dir_path C:\FastTransfer_win-x64\ `
  --task_list transfer diff

Multi-Schema Pattern Migration (v0.6.12+)

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

Scenario 1: Multi-Tenant Application Schemas

Migrate all schemas for a multi-tenant application where each tenant has a schema named “TENANT_".

Linux
MigratorXpress --auth credentials.json \
  --source_db_auth_id source_oracle \
  --source_db_name prod_db \
  --source_schema_name "TENANT_%" \
  --target_db_auth_id target_postgres \
  --target_db_name tenant_db \
  --migration_db_auth_id migration_db \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64/ \
  --n_jobs 4 \
  --fasttransfer_p=2 \
  --task_list translate create transfer diff
Windows (PowerShell)
.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_oracle `
  --source_db_name prod_db `
  --source_schema_name "TENANT_%" `
  --target_db_auth_id target_postgres `
  --target_db_name tenant_db `
  --migration_db_auth_id migration_db `
  --fasttransfer_dir_path C:\FastTransfer_win-x64\ `
  --n_jobs 4 `
  --fasttransfer_p=2 `
  --task_list translate create transfer diff

Result: All schemas matching pattern (TENANT_ACME, TENANT_WIDGETS, TENANT_GLOBAL, etc.) are migrated in a single run.

Scenario 2: Environment-Based Schema Migration

Migrate all development, staging, or production schemas containing a specific keyword.

Linux
MigratorXpress --auth credentials.json \
  --source_db_auth_id source_db \
  --source_db_name warehouse \
  --source_schema_name "%_PROD%" \
  --target_db_auth_id target_db \
  --target_db_name warehouse_new \
  --migration_db_auth_id migration_db \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64/ \
  --n_jobs 8 \
  --task_list translate create transfer diff
Windows (PowerShell)
.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_db `
  --source_db_name warehouse `
  --source_schema_name "%_PROD%" `
  --target_db_auth_id target_db `
  --target_db_name warehouse_new `
  --migration_db_auth_id migration_db `
  --fasttransfer_dir_path C:\FastTransfer_win-x64\ `
  --n_jobs 8 `
  --task_list translate create transfer diff

Result: Migrates all production schemas (SALES_PROD, INVENTORY_PROD, ANALYTICS_PROD, etc.).

Scenario 3: Year-Based Historical Schema Migration

Migrate historical data organized by year in separate schemas.

Linux
MigratorXpress --auth credentials.json \
  --source_db_auth_id source_db \
  --source_db_name archive \
  --source_schema_name "DATA_2024%" \
  --target_db_auth_id target_db \
  --target_db_name archive_new \
  --migration_db_auth_id migration_db \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64/ \
  --n_jobs 6 \
  --task_list translate create transfer diff
Windows (PowerShell)
.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_db `
  --source_db_name archive `
  --source_schema_name "DATA_2024%" `
  --target_db_auth_id target_db `
  --target_db_name archive_new `
  --migration_db_auth_id migration_db `
  --fasttransfer_dir_path C:\FastTransfer_win-x64\ `
  --n_jobs 6 `
  --task_list translate create transfer diff

Result: Migrates all 2024 schemas (DATA_2024_Q1, DATA_2024_Q2, DATA_2024_Q3, DATA_2024_Q4).

Scenario 4: Multiple Pattern Migration

Migrate multiple schema patterns in a single run.

Linux
MigratorXpress --auth credentials.json \
  --source_db_auth_id source_db \
  --source_db_name company_db \
  --source_schema_name "APP_%, TENANT_%" \
  --target_db_auth_id target_db \
  --target_db_name company_new \
  --migration_db_auth_id migration_db \
  --fasttransfer_dir_path /opt/FastTransfer_linux-x64/ \
  --n_jobs 4 \
  --task_list translate create transfer diff
Windows (PowerShell)
.\MigratorXpress.exe --auth credentials.json `
  --source_db_auth_id source_db `
  --source_db_name company_db `
  --source_schema_name "APP_%, TENANT_%" `
  --target_db_auth_id target_db `
  --target_db_name company_new `
  --migration_db_auth_id migration_db `
  --fasttransfer_dir_path C:\FastTransfer_win-x64\ `
  --n_jobs 4 `
  --task_list translate create transfer diff

Result: Migrates schemas matching APP_* OR TENANT_* patterns.

Best Practices for Multi-Schema Migrations:

  • Use appropriate --n_jobs value based on system resources and number of matching schemas
  • Test pattern matching first with a single schema to verify correct behavior
  • Monitor migration logs for per-schema progress
  • Target database automatically creates missing schemas
  • Each schema migration is tracked independently in migration database
  • All matched schemas share a single run_id for unified tracking

Best Practices by Scenario

Development Environment Setup

  • Use --drop_tables_if_exists true for clean migrations
  • Include all constraint copy tasks for complete schema

Production Migrations

  • Always run diff task to validate data integrity
  • Use higher --n_jobs and --fasttransfer_p values
  • Keep migration database data (--migration_db_mode preserve) for restart capability

Continuous Sync

  • Run only transfer diff tasks
  • Maintain migration tracking data
  • Schedule regular sync windows