Console Mode

Console Mode allows you to script and automate your migrations without ever needing to use our web-based user interface.

Lorem ipsum dolor sit amet
Scripting and Automation

All of the functionality exposed in the web-based UI is available in the console mode as well.

How does it work?

Run the OmniLoader executable with an additional -job parameter specifying the path to the JSON file. An example (Windows variant):

OmniLoader.exe -job \path\to\the\file.json

By default, the console will copy all the tables from all source databases into the target database. Of course, this behavior can be changed. One can opt to specify a particular list of tables to copy, and these tables can each have their own specific customization parameters applied. More information on this is available in our documentation. If several source databases are used, instead of a single Source element, you should use Sources with an array of items.

How is Console Mode useful for you?

ConsoleMode JSON files are easy to understand – and declarative. One can see all the customizations right away, as there is no need to flick through different screens to examine what has been applied.

This is especially valuable in a multi-user environment, where a colleague coming to the project can immediately grasp the requirements.

An additional benefit is that JSON project files can be put into the source control, for security and audit.

{
  "SqlServer": {
    "Server": "R12",
    "Database": "AdventureWorks2017",
    "AuthenticationType": "SqlServer",  // Windows|SqlServer
    "Username": "sa",
    "Password": "test"
  }
}
{
  "Oracle": {
    "ConnectionType": "Direct", // Direct|OracleClient
    "Server": "{{server ip, or empty if localhost}}",
    "Port": 11522,
    "Sid": "{{sid}}", // or "ServiceName": "{{service name}}",
    "Username": "sys",
    "Password": "{{password}}",
    "Role": "SysDBA"  // Default|SysDBA|SysOPER
  }
}
{
  "Synapse": {
    "Server": "{{yourserver}}.database.windows.net,
    "Database": "{{database name}}",
    "Username": "{{user}}",
    "Password": "{{password}}",
    "AuthenticationType": "sqlserver",
    "StorageType": "adlsv2",  // Local|AzureBlob|ADLSv2
    "StorageFormat": "parquet", // CSV|Parquet
    "StorageCompression": "snappy", // None|Snappy|GZip
    "ConnectionString": "{{conn string from storage explorer}}",
    "Container": "{{container}}",
    "ContainerDirectory": "{{directory name in the container}}"
  }
}
{
  "PostgreSQL": {
    "Server": "localhost",
    "Port": 5432,
    "Database": "{{db name}}",
    "Username": "postgres",
    "Password": "{{password}}"
  }
}
{
  "Source": { ... },
  "Target": { ... },
  "Options": {
    "SummaryLogFilename": "summary.log",
    "ErrorLogFilename": "error.log",
    "WarningLogFilename": "warning.log",
    "SqlLogFilename": "sql.log",
    "ErrorSqlLogFilename": "errorsql.log",
    "JsonLogFilename": "details.json",
    "SchemaMapping": "person=people",
    "TableNameMapping": "production=prod",
    "ColumnNameMapping": "parent=parent_id",
    "DataTypeMapping": "varchar=nvarchar;char(10)=char(30)",
    "DefaultValuesMapping": "now=current_timestamp",
    "TableSlices": 16,
    "TableSliceMinMB": 100,
    "FileTableRowLimit": 100000,
    "DryRun": false,
    "DataCopyingMode": "Everything"  // None|Everything|Delta
  }
}
Lorem ipsum dolor sit amet
Omni Loader console arguments

Omni Loader can be invoked as a console application to execute a job and return. This is very useful for automated migrations and migrations as part of CI/CD workflows.

--job {path-to-json-file}

A JSON job specification to use. A typical example would be:

OmniLoader.exe --job c:\jobs\sql2synapse.json
--cluster

Run Omni Loader in a distributed cluster mode. Omni Loader becomes a cluster orchestrator and awaits for agents to connect to it.

OmniLoader.exe --cluster
--urls {http(s)://ip-range:port}

Listen for incoming connections. A typical example would be:

OmniLoader.exe --urls http://0.0.0.0:5000
--listen-at {http(s)://ip:port}

In cluster mode, this is a public orchestrator IP:port combination that will be sent to agents when they connect. Agents will send data to the API on specified port.

OmniLoader.exe --cluster --urls http://0.0.0.0:5000
--listen-at http://192.168.1.100:5000n
--activate {activation code}

In console mode and CI/CD workflows, you can activate Omni Loader even without firing up the GUI.

OmniLoader.exe --job c:\jobs\sql2synapse.json
--activate 12345-6789-0000
Sisyphus

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris imperdiet egestas blandit. Suspendisse rhoncus congue lorem ut malesuada.

Candice Doe
Product Manager, Sisyphus
Save time, increase efficiency.

Ready to get started?

FAQ

Frequently asked questions