Migrate to Ingres now!

This project is hosted on Logo

Robust, Extensible, Modularised Architecture!


  • Migrate data from an Application's Oracle/DB2 Database into an Ingres R3 Database.
  • Run the Application on the Ingres R3 Database without any code changes.
  • Must be easy to upgrade the database compatibility layer.
  • Easy to add support for migration of other databases.

Our solution

  • Provide with a tool which can migrate the Oracle/DB2 database into Ingres R3 Database.
  • Provide with a database compatibility layer which can convert Oracle/DB2 specific queries into Ingres compatible queries.

Core Modules
The Migration Toolkit consists of the following core modules:

  • Data Migration Tool - This migrates all the schema, data & PL/SQL from an existing Oracle/DB2 Database onto an Ingres R3 Database.
  • Query Compatibility layer (QC) - This parses Oracle/DB2 compatible SQL queries and converts them into Ingres R3 compatible SQL queries.
  • Core Layer (CL) - This layer intercepts all the messages sent between the different Ingres database communication interfaces (eg. JDBC, ODBC) and the Ingres database server. It converts the messages from Oracle/DB2 specific to Ingres specific messages and then passes them onto the Ingres Server. This layer uses Query Compatibility Layer to do conversions of SQL Queries from Oracle/DB2 format to Ingres.
  • JDBC Drivers - These are modified versions of the Ingres R3 JDBC Driver, which provide the feel of an Oracle/DB2 JDBC Driver to the application. They also provide extra functionalities of the specific DB which are not present in the Ingres JDBC Driver.

Data Migration Process

Application Migration (Execution) Process

Migration Process
Our migration solution involves two step, Data Migration and then Application Migartion. Here is a brief overview of what both the steps entail.

  • Data Migration Process
    1. First the Importer gets all the Meta-Data (Schema, Grants, etc) from the Oracle/DB2 Database Server. It then generates Oracle/DB2 compatible SQL queries for creating the same.
    2. These queries are then converted into Ingres R3 Compatible queries by the Query Compatibility (QC) module.
    3. These Ingres compatible queries are then executed on the Ingres R3 Database Server.
    4. After this the migration tool reads data of each table and writes it into the Ingres R3 Database directly.

  • Application Migration (Execution) Process
    1. The applications needs to use the JDBC Driver provided by us to connect to the core layer. For this we simply replace the existing Oracle/DB2 JDBC Driver with our modified Ingres JDBC Driver.
    2. Core Layer makes a connection to the Ingres R3 Database Server for every connection made to it by the application.
    3. The Core Layer passes all messages, which do not contain any SQL-Queries in them, directly to the Database Server.
    4. For the messages containing SQL Queries, the core layer sniffs out the query from them, converts them into Ingres R3 compatible queries (using the QC module) and then sends them to the Ingres R3 Database Server.

Click here to view document with comprehensive architecture explanation.

All the code and documents are solely owned by the Shift2Ingres team. Shift2Ingres migration toolkit is available for public use under the BSD Open Source License.