Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

GOCDB/Doctrine

From EGIWiki
Jump to navigation Jump to search

<< Back to GOCDB/Release4/Development

Introduction

By replacing the PROM model with the Doctrine ORM GOCDB will support RDBMSs other than Oracle.

Benefits

  • Write code once, deploy to Oracle, MySQL, Postgres, SQLite.
  • Much simpler than the GOCDB/PROM model (see below)


PROM SQL
Doctrine SQL

Changes

The move to Doctrine will introduce changes to the GOCDB portal URLs and to the PRIMARY KEY, ID and GOCDB_PORTAL_URL fields of the GOCDB PI.

Portal URLs

In PROM, each "entity" (site, service endpoint, downtime) was assigned an ID from a global pool. There is only one object 123, the GRIDOPS-GOCDB site. The following URL is used to access an entity regardless of type:
https://goc.egi.eu/portal/index.php?Page_Type=View_Object&object_id=123&grid_id=0

In Doctrine, each entity receives an ID unique only to that entity type. There is a site with ID 123, a service endpoint with ID 123 and a downtime with ID 123. The new URL will reflect the entity type:


https://goc.egi.eu/portal/index.php?Page_Type=Site&id=123
https://goc.egi.eu/portal/index.php?Page_Type=Service_Endpoint&id=123
https://goc.egi.eu/portal/index.php?Page_Type=Downtime&id=123
(...and so on for each GOCDB entity type)