Database Connections
MigratorXpress requires three database connections for every migration:
- Source Database -- the database you are migrating from.
- Target Database -- the database that receives the translated schema and data.
- Migration Tracking Database -- a SQL Server database that records every migration step for auditing and resumability.
Supported Databases
Source Databases
| Database | Parallel Transfer Method | Notes |
|---|---|---|
| PostgreSQL | Ctid | No key column required |
| Oracle | Rowid | Thin and thick client modes; requires SELECT_CATALOG_ROLE for parallel transfers |
| SQL Server | Standard | Also usable as target and migration tracking |
| Netezza | NZDataSlice | Source-only; default port 5480 |
Target Databases
| Database | Notes |
|---|---|
| PostgreSQL | Default target for most migrations |
| SQL Server | Supports columnstore index options (cci_threshold, aci_threshold) |
Migration Tracking Database
| Database | Notes |
|---|---|
| SQL Server | Required for all migrations; stores run history, task status, and resume state |
Authentication File Format
Create a JSON file containing one entry per database connection. Each entry has a unique identifier (the JSON key), a ds_type, an auth_mode, and an info object with connection details.
{
"source_oracle": {
"ds_type": "oracle",
"auth_mode": "classic",
"info": {
"username": "$env{ORACLE_USER}",
"password": "$env{ORACLE_PASSWORD}",
"server": "oracle-prod.company.com",
"port": 1521,
"database": "PRODPDB"
}
},
"source_postgres": {
"ds_type": "postgres",
"auth_mode": "classic",
"info": {
"username": "$env{PG_USER}",
"password": "$env{PG_PASSWORD}",
"server": "pg-prod.company.com",
"port": 5432,
"database": "analytics"
}
},
"target_mssql": {
"ds_type": "mssql",
"auth_mode": "classic",
"info": {
"username": "$env{MSSQL_USER}",
"password": "$env{MSSQL_PASSWORD}",
"server": "sql-host.company.com",
"port": 1433,
"database": "target_db"
}
},
"source_netezza": {
"ds_type": "netezza",
"auth_mode": "classic",
"info": {
"username": "$env{NZ_USER}",
"password": "$env{NZ_PASSWORD}",
"server": "nz-host.company.com",
"port": 5480,
"database": "PROD_DB"
}
},
"migration_tracking": {
"ds_type": "mssql",
"auth_mode": "classic",
"info": {
"username": "$env{MIG_USER}",
"password": "$env{MIG_PASSWORD}",
"server": "sql-host.company.com",
"port": 1433,
"database": "migration_log"
}
}
}
Environment variable substitution
Use $env{VAR_NAME} in any string value to reference an environment variable at runtime. MigratorXpress raises an error if a referenced variable is not set. Plain-text values also work -- values without $env{ are returned as-is.
# Linux
export ORACLE_USER="migrator"
export ORACLE_PASSWORD="SecureP@ssw0rd"
# Windows (PowerShell)
$env:ORACLE_USER = "migrator"
$env:ORACLE_PASSWORD = "SecureP@ssw0rd"
Using the Auth File
Reference the file with --auth and point to individual entries by their ID:
./MigratorXpress --auth ./credentials.json \
--source_db_auth_id source_oracle \
--target_db_auth_id target_mssql \
--migration_db_auth_id migration_tracking \
--source_schema_name SALES \
--target_schema_name sales \
--task_list translate create transfer diff
Security Best Practices
1. Credential Storage
- Never commit credentials to version control.
- Restrict
credentials.jsonpermissions:chmod 600 credentials.json - Use environment-specific auth files (dev, staging, prod).
2. Least Privilege
- Create dedicated database users for MigratorXpress.
- Grant only SELECT on source databases.
- Grant CREATE, INSERT, UPDATE, DELETE on target databases.
- Use a dedicated SQL Server database for migration tracking.
3. Network Security
- Use SSL/TLS connections where supported.
- Restrict database access by IP.
- Use VPN or private networks for cross-environment migrations.
4. Password Management
- Use strong passwords (12+ characters, mixed case, numbers, symbols).
- Rotate passwords regularly.
- Consider secret managers (AWS Secrets Manager, HashiCorp Vault, Azure Key Vault).
See Also
- PostgreSQL -- Source and target configuration
- Oracle -- Source configuration with thin/thick modes
- SQL Server -- Source, target, and migration tracking configuration
- Netezza -- Source configuration
- Quick Start Guide -- Getting started with MigratorXpress
- CLI Reference -- Command-line options