Sample repository to show how to migrate from PostgreSQL to InterSystems IRIS
using SQLgateway in differnce to using an external tool as DBeaver or similar.
I especially try to demonstrate the comfort in fitting underlaying naming limitations.
OEX package migration-pg-iris-dataset
provided by YURI MARX PEREIRA GOMES
- Special thanks as this was an excellent base to start off.
Article about PostgreSQL into Docker:
Git project created from:
Make sure you have git and Docker desktop installed.
Clone/git pull the repo into any local directory
- Run it in foreground. Sometimes container start is slower than estimated.
- Wait for confirmation from postgres container: ready to accept connections
postgres_1 | 2022-01-02 15:37:27.654 UTC  LOG: database system is ready to accept connections
Use DBeaver to connect to the databases
Connection to PostgreSQL:
- host: localhost
- database: postgres
- port: 5438
- username: postgres
- password: postgres
Connection to IRIS:
- host: localhost
- database: user
- port: 1972
- username: _SYSTEM
- password: SYS
SQLgateway is installed during Docker build and the required
jdbcdriver for Linux is included in this repo
In order to make this demo faster, size of tables to migrate have been shrinked a bit.
How to test
All migration actions can be executed directly from SMP.
Verify the gateway connection in
SMP> Administration> Configuraation >Connectivity >SqlGateway_Configuration
- To test Connection click edit
- and Test Connection
- verify Connection successful
- Be patient at this point. Postgres Containers sometimes take quite some time to talk to you.
wait a little bit, reload the page in browser and try the test again.
Identifying the source tables. In SMP > Change to Namespace USER
then step to SMP >Explorers >SQL >Wizards > Data Migration
Set required import parameters
- Destination Namespace
- Type = TABLE
- Gateway = postgres ; now the first connection is established and you select
- Schema = public
- Tables to migrate = all
- Identify target but change schema to be OEX compatible from public to dc_public
- don't forget to click change all
- we migrate Definitions and Data so both sides are selected
Skipping special setting we use defaults we start the task in background
Now we check the results and see everything was working without Errors
You might see errors if tables depend on content not yet migrated.
And wait for completions until the status shows Done
We terminate the Migration Wizzard and return to normal table view filtered by dc*
All 8 tables are visible and show meaningful columns
Selecting a table and clicking on OpenTable shows resonable contents
A look into the related generated Class Defnitions confirms the result and successful completion.
Article on DC