The iRODS metadata catalog is installed and managed by separate plugins. iRODS has PostgreSQL, MySQL, and Oracle database plugins available and tested.

The particular type of database is encoded in /etc/irods/database_config.json with the following directive:

"catalog_database_type" : "postgres",

This is populated by the setup_irods.py script on configuration.

The iRODS 3.x icatHighLevelRoutines are, in effect, the API calls for the database plugins. No changes should be needed to any calls to the icatHighLevelRoutines.

To implement a new database plugin, a developer will need to provide the existing 84 SQL calls (in icatHighLevelRoutines) and an implementation of GenQuery.