diff --git a/CDB/default_ConfigDb.json b/CDB/default_ConfigDb.json
index a33ece273af53c2a3934b49b4d1d09b539ae0dc8..d5ace77f1b80d9999bb4fee7f868afc58797dbf8 100644
--- a/CDB/default_ConfigDb.json
+++ b/CDB/default_ConfigDb.json
@@ -31,18 +31,19 @@
         "hdbppcm-srv": {
             "01": {
                 "HdbConfigurationManager": {
-                    "archiving/hdbpp/confmanager01": {
+                    "archiving/hdbppts/confmanager01": {
                         "properties": {
                             "ArchiverList": [
-                                "archiving/hdbpp/eventsubscriber01"
+                                "archiving/hdbppts/eventsubscriber01"
                             ], 
                             "LibConfiguration": [
-                                "host=archiver-maria-db", 
-                                "libname=libhdb++mysql.so.6", 
-                                "dbname=hdbpp", 
-                                "port=3306", 
-                                "user=tango", 
-                                "password=tango"
+                                "connect_string= user=postgres password=password host=archiver-timescale port=5432 dbname=hdb",
+                                "host=archiver-timescale",
+                                "libname=libhdb++timescale.so",
+                                "dbname=hdb",
+                                "port=5432", 
+                                "user=postgres", 
+                                "password=password"
                             ], 
                             "MaxSearchSize": [
                                 "1000"
@@ -55,18 +56,19 @@
         "hdbppes-srv": {
             "01": {
                 "HdbEventSubscriber": {
-                    "archiving/hdbpp/eventsubscriber01": {
+                    "archiving/hdbppts/eventsubscriber01": {
                         "properties": {
                             "CheckPeriodicTimeoutDelay": [
                                 "5"
                             ], 
                             "LibConfiguration": [
-                                "host=archiver-maria-db", 
-                                "libname=libhdb++mysql.so.6", 
-                                "dbname=hdbpp", 
-                                "port=3306", 
-                                "user=tango", 
-                                "password=tango"
+                                "connect_string= user=postgres password=password host=archiver-timescale port=5432 dbname=hdb",
+                                "host=archiver-timescale",
+                                "libname=libhdb++timescale.so",
+                                "dbname=hdb",
+                                "port=5432",
+                                "user=postgres",
+                                "password=password"
                             ], 
                             "PollingThreadPeriod": [
                                 "3"
diff --git a/CDB/tango-archiver-data/archiver-devices.json b/CDB/tango-archiver-data/archiver-devices.json
index 3c48614fa13189ae0133e01f6f7e600edad6b482..f726543c6916327352719fa50732988533b6d3fd 100644
--- a/CDB/tango-archiver-data/archiver-devices.json
+++ b/CDB/tango-archiver-data/archiver-devices.json
@@ -2,19 +2,6 @@
     "servers": {
         "hdbppes-srv": {
             "01": {
-                "HdbEventSubscriber": {
-                    "archiving/hdbpp/eventsubscriber01": {
-                        "attribute_properties": {},
-                        "properties": {
-                            "CheckPeriodicTimeoutDelay": ["5"],
-                            "PollingThreadPeriod": ["3"],
-                            "LibConfiguration": ["host=archiver-maria-db","libname=libhdb++mysql.so.6","dbname=hdbpp","port=3306", "user=tango", "password=tango"],
-                            "polled_attr": []
-                        }
-                    }
-                }
-            },
-            "02": {
                 "HdbEventSubscriber": {
                     "archiving/hdbppts/eventsubscriber01": {
                         "attribute_properties": {},
@@ -26,36 +13,10 @@
                         }
                     }
                 }
-            },
-            "03": {
-                "HdbEventSubscriber": {
-                    "archiving/hdbpp/eventsubscriber02": {
-                        "attribute_properties": {},
-                        "properties": {
-                            "CheckPeriodicTimeoutDelay": ["5"],
-                            "PollingThreadPeriod": ["3"],
-                            "LibConfiguration": ["host=archiver-maria-db","libname=libhdb++mysql.so.6","dbname=hdbpp","port=3306", "user=tango", "password=tango"],
-                            "polled_attr": []
-                        }
-                    }
-                }
             }
         },
         "hdbppcm-srv": {
             "01": {
-                "HdbConfigurationManager": {
-                    "archiving/hdbpp/confmanager01": {
-                        "attribute_properties": {},
-                        "properties": {
-                            "ArchiverList": ["archiving/hdbpp/eventsubscriber01"],
-                            "MaxSearchSize": ["1000"],
-                            "LibConfiguration": ["host=archiver-maria-db","libname=libhdb++mysql.so.6","dbname=hdbpp","port=3306", "user=tango", "password=tango"],
-                            "polled_attr": []
-                        }
-                    }
-                }
-            },
-            "02": {
                 "HdbConfigurationManager": {
                     "archiving/hdbppts/confmanager01": {
                         "attribute_properties": {},
diff --git a/docker-compose/grafana/dashboards/archiver_mariadb.json b/docker-compose/grafana/dashboards/archiver_mariadb.json
deleted file mode 100644
index 73b4aa07650e9c8cac3a4bcf12537cd2fe381c6a..0000000000000000000000000000000000000000
--- a/docker-compose/grafana/dashboards/archiver_mariadb.json
+++ /dev/null
@@ -1,799 +0,0 @@
-{
-  "annotations": {
-    "list": [
-      {
-        "builtIn": 1,
-        "datasource": "-- Grafana --",
-        "enable": true,
-        "hide": true,
-        "iconColor": "rgba(0, 211, 255, 1)",
-        "name": "Annotations & Alerts",
-        "target": {
-          "limit": 100,
-          "matchAny": false,
-          "tags": [],
-          "type": "dashboard"
-        },
-        "type": "dashboard"
-      }
-    ]
-  },
-  "editable": true,
-  "fiscalYearStartMonth": 0,
-  "gnetId": null,
-  "graphTooltip": 0,
-  "links": [],
-  "liveNow": false,
-  "panels": [
-    {
-      "datasource": null,
-      "fieldConfig": {
-        "defaults": {
-          "color": {
-            "mode": "thresholds"
-          },
-          "custom": {
-            "align": "auto",
-            "displayMode": "auto"
-          },
-          "mappings": [],
-          "thresholds": {
-            "mode": "absolute",
-            "steps": [
-              {
-                "color": "green",
-                "value": null
-              },
-              {
-                "color": "red",
-                "value": 80
-              }
-            ]
-          }
-        },
-        "overrides": []
-      },
-      "gridPos": {
-        "h": 8,
-        "w": 12,
-        "x": 0,
-        "y": 0
-      },
-      "id": 4,
-      "options": {
-        "showHeader": true
-      },
-      "pluginVersion": "8.2.3",
-      "targets": [
-        {
-          "format": "table",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "select name as \"Attribute\"\r\nfrom att_conf ac \r\nwhere ac.domain ='stat' and ac.family = 'sdp' and ac.member ='1'\r\norder by ac.name",
-          "refId": "A",
-          "select": [
-            [
-              {
-                "params": [
-                  "name"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_conf",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": []
-        }
-      ],
-      "title": "STAT/SDP/1 archived attributes",
-      "type": "table"
-    },
-    {
-      "datasource": null,
-      "description": "",
-      "fieldConfig": {
-        "defaults": {
-          "color": {
-            "mode": "thresholds"
-          },
-          "custom": {
-            "align": "auto",
-            "displayMode": "auto"
-          },
-          "mappings": [],
-          "thresholds": {
-            "mode": "absolute",
-            "steps": [
-              {
-                "color": "green",
-                "value": null
-              },
-              {
-                "color": "red",
-                "value": 80
-              }
-            ]
-          }
-        },
-        "overrides": []
-      },
-      "gridPos": {
-        "h": 8,
-        "w": 12,
-        "x": 12,
-        "y": 0
-      },
-      "id": 6,
-      "options": {
-        "showHeader": true
-      },
-      "pluginVersion": "8.2.3",
-      "targets": [
-        {
-          "format": "table",
-          "group": [],
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "select name as \"Attribute\" \r\nfrom att_conf  \r\nwhere domain ='stat' and family = 'recv' and member ='1'\r\norder by name",
-          "refId": "A",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        }
-      ],
-      "title": "STAT/RECV/1  archived attributes",
-      "type": "table"
-    },
-    {
-      "datasource": null,
-      "fieldConfig": {
-        "defaults": {
-          "color": {
-            "mode": "palette-classic"
-          },
-          "custom": {
-            "axisLabel": "",
-            "axisPlacement": "auto",
-            "barAlignment": 0,
-            "drawStyle": "points",
-            "fillOpacity": 0,
-            "gradientMode": "none",
-            "hideFrom": {
-              "legend": false,
-              "tooltip": false,
-              "viz": false
-            },
-            "lineInterpolation": "linear",
-            "lineWidth": 1,
-            "pointSize": 4,
-            "scaleDistribution": {
-              "type": "linear"
-            },
-            "showPoints": "auto",
-            "spanNulls": false,
-            "stacking": {
-              "group": "A",
-              "mode": "normal"
-            },
-            "thresholdsStyle": {
-              "mode": "off"
-            }
-          },
-          "mappings": [],
-          "thresholds": {
-            "mode": "absolute",
-            "steps": [
-              {
-                "color": "green",
-                "value": null
-              }
-            ]
-          }
-        },
-        "overrides": [
-          {
-            "__systemRef": "hideSeriesFrom",
-            "matcher": {
-              "id": "byNames",
-              "options": {
-                "mode": "exclude",
-                "names": [
-                  "temperature [1]"
-                ],
-                "prefix": "All except:",
-                "readOnly": true
-              }
-            },
-            "properties": [
-              {
-                "id": "custom.hideFrom",
-                "value": {
-                  "legend": false,
-                  "tooltip": false,
-                  "viz": true
-                }
-              }
-            ]
-          }
-        ]
-      },
-      "gridPos": {
-        "h": 9,
-        "w": 12,
-        "x": 0,
-        "y": 8
-      },
-      "id": 2,
-      "options": {
-        "legend": {
-          "calcs": [],
-          "displayMode": "list",
-          "placement": "bottom"
-        },
-        "tooltip": {
-          "mode": "single"
-        }
-      },
-      "pluginVersion": "8.2.1",
-      "targets": [
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": true,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT\ndata_time as \"time\",\nvalue_r as \"value\"\nFROM att_array_devdouble_ro\nJOIN att_conf\nON att_array_devdouble_ro.att_conf_id = att_conf.att_conf_id \nWHERE\natt_conf.domain = 'lts'\nand att_conf.family = 'sdp'\nand att_conf.member = 1\nand att_conf.name = 'fpga_temp_r'\nORDER BY data_time,idx\n",
-          "refId": "A",
-          "select": [
-            [
-              {
-                "params": [
-                  "value"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "timeColumn": "time",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": true,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT\ndata_time as \"time\",\nvalue_r as \"mask\"\nFROM att_array_devboolean_ro\nJOIN att_conf\nON att_array_devboolean_ro.att_conf_id = att_conf.att_conf_id \nWHERE\natt_conf.domain = 'lts'\nand att_conf.family = 'sdp'\nand att_conf.member = 1\nand att_conf.name = 'tr_fpga_mask_r'\nORDER BY data_time,idx\n",
-          "refId": "B",
-          "select": [
-            [
-              {
-                "params": [
-                  "value"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "timeColumn": "time",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [0]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 0\r\nORDER BY t.`time`, t.`index`",
-          "refId": "Masked Values",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [1]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 1\r\nORDER BY t.`time`, t.`index`",
-          "refId": "C",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [2]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 2\r\nORDER BY t.`time`, t.`index`",
-          "refId": "D",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [3]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 3\r\nORDER BY t.`time`, t.`index`",
-          "refId": "E",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [4]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 4\r\nORDER BY t.`time`, t.`index`",
-          "refId": "F",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [5]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 5\r\nORDER BY t.`time`, t.`index`",
-          "refId": "G",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [6]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 6\r\nORDER BY t.`time`, t.`index`",
-          "refId": "H",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [7]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 7\r\nORDER BY t.`time`, t.`index`",
-          "refId": "I",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [8]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 8\r\nORDER BY t.`time`, t.`index`",
-          "refId": "J",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [9]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 9\r\nORDER BY t.`time`, t.`index`",
-          "refId": "K",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [10]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 10\r\nORDER BY t.`time`, t.`index`",
-          "refId": "L",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [11]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 11\r\nORDER BY t.`time`, t.`index`",
-          "refId": "M",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [12]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 12\r\nORDER BY t.`time`, t.`index`",
-          "refId": "N",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [13]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 13\r\nORDER BY t.`time`, t.`index`",
-          "refId": "O",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [14]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 14\r\nORDER BY t.`time`, t.`index`",
-          "refId": "P",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        },
-        {
-          "format": "time_series",
-          "group": [],
-          "hide": false,
-          "metricColumn": "none",
-          "rawQuery": true,
-          "rawSql": "SELECT t.`time` as \"time\",\r\nt.value as \"temperature [15]\"\r\nFROM SDP_FPGA_temp as t INNER JOIN SDP_TR_FPGA_mask as m\r\nON t.`time`=m.`time` and t.`index`=m.`index`\r\nWHERE m.value = 1\r\nAND t.`time` > $__timeFrom()\r\nAND t.`time` < $__timeTo()\r\nAND t.`index` = 15\r\nORDER BY t.`time`, t.`index`",
-          "refId": "Q",
-          "select": [
-            [
-              {
-                "params": [
-                  "att_conf_id"
-                ],
-                "type": "column"
-              }
-            ]
-          ],
-          "table": "att_array_devfloat_rw",
-          "timeColumn": "data_time",
-          "timeColumnType": "timestamp",
-          "where": [
-            {
-              "name": "$__timeFilter",
-              "params": [],
-              "type": "macro"
-            }
-          ]
-        }
-      ],
-      "title": "SDP - FPGA Temperature",
-      "type": "timeseries"
-    }
-  ],
-  "refresh": "",
-  "schemaVersion": 31,
-  "style": "dark",
-  "tags": [],
-  "templating": {
-    "list": []
-  },
-  "time": {
-    "from": "now-24h",
-    "to": "now"
-  },
-  "timepicker": {},
-  "timezone": "",
-  "title": "Archiver-MariaDB",
-  "uid": "2zuNvev7z",
-  "version": 1
-}
diff --git a/docker-compose/grafana/datasources/archiver-maria-db.yaml b/docker-compose/grafana/datasources/archiver-maria-db.yaml
deleted file mode 100644
index c809d294269683f12ca82a9f28d6019c85f96723..0000000000000000000000000000000000000000
--- a/docker-compose/grafana/datasources/archiver-maria-db.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-apiVersion: 1
-
-datasources:
-  # <string, required> name of the datasource. Required
-  - name: Archiver
-    # <string, required> datasource type. Required
-    type: mysql
-    # <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
-    access: proxy
-    # <int> org id. will default to orgId 1 if not specified
-    orgId: 1
-    # <string> custom UID which can be used to reference this datasource in other parts of the configuration, if not specified will be generated automatically
-    uid: ZqAMHGN7z
-    # <string> url
-    url: archiver-maria-db
-    # <string> Deprecated, use secureJsonData.password
-    password:
-    # <string> database user, if used
-    user: tango
-    # <string> database name, if used
-    database: hdbpp
-    # <bool> enable/disable basic auth
-    basicAuth: false
-    # <string> basic auth username
-    basicAuthUser:
-    # <string> Deprecated, use secureJsonData.basicAuthPassword
-    basicAuthPassword:
-    # <bool> enable/disable with credentials headers
-    withCredentials:
-    # <bool> mark as default datasource. Max one per org
-    isDefault: true
-    # <map> fields that will be converted to json and stored in jsonData
-    jsonData:
-    # <string> json object of data that will be encrypted.
-    secureJsonData:
-      # <string> database password, if used
-      password: tango
-    version: 1
-    # <bool> allow users to edit datasources from the UI.
-    editable: false
diff --git a/tangostationcontrol/tangostationcontrol/toolkit/README.md b/tangostationcontrol/tangostationcontrol/toolkit/README.md
index babdfac5661f17e9d5b31c5b5d4fa2de20d3b45e..adcd1a321759d5e36d525f3f2911f2779254ec16 100644
--- a/tangostationcontrol/tangostationcontrol/toolkit/README.md
+++ b/tangostationcontrol/tangostationcontrol/toolkit/README.md
@@ -4,9 +4,9 @@ The Archiver class in archiver.py defines the methods to manage the device attri
 
 The main components (and the relative Docker containers) are:
 
-- Configuration Manager (container: hdbpp-cm): Device server that assists in adding, modifying, moving, deleting an Attribute to/from the archiving system
-- Event Subscriber (container: hdbpp-es): The EventSubscriber TANGO device server, is the archiving system engine. On typical usage, it will subscribe to archive events on request by the ConfigurationManager device. The EventSubscriber is designed to start archiving all the already configured Attributes, even if the ConfigurationManager is not running. Moreover, being a TANGO device, the EventSubscriber configuration can be managed with Jive.
-- Archiving DBMS (container: archiver-maria-db): Specific Database devoted to storing attribute values.
+- Configuration Manager (container: hdbppts-cm): Device server that assists in adding, modifying, moving, deleting an Attribute to/from the archiving system
+- Event Subscriber (container: hdbppts-es): The EventSubscriber TANGO device server, is the archiving system engine. On typical usage, it will subscribe to archive events on request by the ConfigurationManager device. The EventSubscriber is designed to start archiving all the already configured Attributes, even if the ConfigurationManager is not running.
+- Archiving DBMS (container: archiver-timescale): Specific Database devoted to storing attribute values.
 - (Optional) HDB++ Viewer (container: hdbpp-viewer): Standalone JAVA application designed to monitor signals coming from database
 
 ## Archiver creation
diff --git a/tangostationcontrol/tangostationcontrol/toolkit/archiver_base_mysql.py b/tangostationcontrol/tangostationcontrol/toolkit/archiver_base_mysql.py
deleted file mode 100644
index e770cbb42820804ada57dcc3790afd04e2ded842..0000000000000000000000000000000000000000
--- a/tangostationcontrol/tangostationcontrol/toolkit/archiver_base_mysql.py
+++ /dev/null
@@ -1,926 +0,0 @@
-#! /usr/bin/env python3
-
-from sqlalchemy.dialects.mysql.types import INTEGER
-from sqlalchemy.orm import declarative_base
-from sqlalchemy import Column, Integer, String
-from sqlalchemy.dialects.mysql import DOUBLE,TIMESTAMP,BLOB, FLOAT, BIGINT
-from typing import List
-import numpy
-
-#Declarative system used to define classes mapped to relational DB tables
-Base = declarative_base()
-
-class Attribute(Base):
-    """
-    Class that represents a Tango Attribute mapped to table 'att_conf'
-    """
-    __tablename__ = 'att_conf'
-    __table_args__ = {'extend_existing': True}
-    
-    att_conf_id = Column(Integer, primary_key=True)
-    att_name = Column(String)
-    att_conf_data_type_id = Column(Integer)
-    att_ttl = Column(Integer)
-    facility = Column(String)
-    domain = Column(String)
-    family = Column(String)
-    member = Column(String)
-    name = Column(String)
-     
-    def __repr__(self):
-        return f"<Attribute(fullname='{self.att_name}',data_type ='{self.att_conf_data_type_id}',ttl='{self.att_ttl}',facility ='{self.facility}',domain ='{self.domain}',family ='{self.family}',member ='{self.member}',name ='{self.name}')>"
-    
-class DataType(Base):
-    """
-    Class that represents a Tango Data Type mapped to table 'att_conf_data_type'
-    """
-    __tablename__ = 'att_conf_data_type'
-    __table_args__ = {'extend_existing': True}
-    
-    att_conf_data_type_id = Column(Integer, primary_key=True)
-    data_type = Column(String)
-    
-    def __repr__(self):
-        return f"<DataType(type='{self.data_type}')>"
-
-class Scalar(Base):
-    """
-    Abstract class that represents Super-class of Scalar mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True 
-
-    # Primary key is not defined for tables which store values, but SQLAlchemy requires a mandatory 
-    # primary key definition. Anyway, this definition is on Python-side and does not compromise
-    # DBMS architecture
-    att_conf_id = Column(Integer, primary_key=True)
-    data_time = Column(TIMESTAMP)
-    recv_time = Column(TIMESTAMP)
-    insert_time = Column(TIMESTAMP, primary_key=True)
-    quality = Column(Integer)
-    att_error_desc_id = Column(Integer)
-
-class Scalar_Boolean(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Boolean mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Scalar_Boolean_RO(Scalar_Boolean):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devboolean_ro'
-    """
-    __tablename__ = 'att_scalar_devboolean_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Scalar_Boolean_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Boolean_RW(Scalar_Boolean):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devboolean_rw'
-    """
-    __tablename__ = 'att_scalar_devboolean_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Scalar_Boolean_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_UChar(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Uchar mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Scalar_UChar_RO(Scalar_UChar):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devuchar_ro'
-    """
-    __tablename__ = 'att_scalar_devuchar_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Scalar_UChar_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_UChar_RW(Scalar_UChar):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devuchar_rw'
-    """
-    __tablename__ = 'att_scalar_devuchar_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Scalar_UChar_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Double(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Double mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(DOUBLE)
-
-class Scalar_Double_RO(Scalar_Double):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devdouble_ro'
-    """
-    __tablename__ = 'att_scalar_devdouble_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_Double_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Double_RW(Scalar_Double):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devdouble_rw'
-    """
-    __tablename__ = 'att_scalar_devdouble_rw'
-    __table_args__ = {'extend_existing': True}  
-    value_w = Column(DOUBLE)
-
-    def __repr__(self):
-        return f"<Scalar_Double_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Encoded(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Encoded mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(BLOB)
-
-class Scalar_Encoded_RO(Scalar_Encoded):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devencoded_ro'
-    """
-    __tablename__ = 'att_scalar_devencoded_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_Encoded_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Encoded_RW(Scalar_Encoded):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devencoded_rw'
-    """
-    __tablename__ = 'att_scalar_devencoded_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(BLOB)
-
-    def __repr__(self):
-        return f"<Scalar_Encoded_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Enum(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Enum mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Scalar_Enum_RO(Scalar_Enum):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devenum_ro'
-    """
-    __tablename__ = 'att_scalar_devenum_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_Enum_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Enum_RW(Scalar_Enum):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devenum_rw'
-    """
-    __tablename__ = 'att_scalar_devenum_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Scalar_Enum_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Float(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Float mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(FLOAT)
-
-class Scalar_Float_RO(Scalar_Float):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devfloat_ro'
-    """
-    __tablename__ = 'att_scalar_devfloat_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_Float_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Float_RW(Scalar_Float):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devfloat_rw'
-    """
-    __tablename__ = 'att_scalar_devfloat_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(FLOAT)
-
-    def __repr__(self):
-        return f"<Scalar_Float_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Long64(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Long64 mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(BIGINT)
-
-class Scalar_Long64_RO(Scalar_Long64):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devlong64_ro'
-    """
-    __tablename__ = 'att_scalar_devlong64_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_Long64_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Long64_RW(Scalar_Long64):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devlong64_rw'
-    """
-    __tablename__ = 'att_scalar_devlong64_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(BIGINT)
-
-    def __repr__(self):
-        return f"<Scalar_Long64_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_ULong64(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar ULong64 mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(INTEGER)
-
-class Scalar_ULong64_RO(Scalar_ULong64):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devulong64_ro'
-    """
-    __tablename__ = 'att_scalar_devulong64_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_ULong64_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_ULong64_RW(Scalar_ULong64):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devulong64_rw'
-    """
-    __tablename__ = 'att_scalar_devulong64_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(INTEGER)
-
-    def __repr__(self):
-        return f"<Scalar_ULong64_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-
-class Scalar_Long(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Long mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(INTEGER)
-
-class Scalar_Long_RO(Scalar_Long):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devlong_ro'
-    """
-    __tablename__ = 'att_scalar_devlong_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_Long_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Long_RW(Scalar_Long):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devlong_rw'
-    """
-    __tablename__ = 'att_scalar_devlong_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(INTEGER)
-
-    def __repr__(self):
-        return f"<Scalar_Long_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_ULong(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar ULong mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(INTEGER)
-
-class Scalar_ULong_RO(Scalar_ULong):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devulong_ro'
-    """
-    __tablename__ = 'att_scalar_devulong_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_ULong_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_ULong_RW(Scalar_ULong):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devulong_rw'
-    """
-    __tablename__ = 'att_scalar_devulong_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(INTEGER)
-
-    def __repr__(self):
-        return f"<Scalar_ULong_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Short(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar Short mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Scalar_Short_RO(Scalar_Short):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devshort_ro'
-    """
-    __tablename__ = 'att_scalar_devshort_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_Short_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_Short_RW(Scalar_Short):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devshort_rw'
-    """
-    __tablename__ = 'att_scalar_devshort_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Scalar_Short_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_State(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar State mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Scalar_State_RO(Scalar_State):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devstate_ro'
-    """
-    __tablename__ = 'att_scalar_devstate_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_State_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_State_RW(Scalar_State):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devstate_rw'
-    """
-    __tablename__ = 'att_scalar_devstate_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Scalar_State_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_String(Scalar):
-    """
-    Abstract class that represents Parent class of Scalar String mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(String)
-
-class Scalar_String_RO(Scalar_String):
-    """
-    Class that represents a Tango Scalar Read-Only Value mapped to table 'att_scalar_devstring_ro'
-    """
-    __tablename__ = 'att_scalar_devstring_ro'
-    __table_args__ = {'extend_existing': True}
-
-    def __repr__(self):
-        return f"<Scalar_String_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Scalar_String_RW(Scalar_String):
-    """
-    Class that represents a Tango Scalar Read-Write Value mapped to table 'att_scalar_devstring_rw'
-    """
-    __tablename__ = 'att_scalar_devstring_rw'
-    __table_args__ = {'extend_existing': True}
-    value_w = Column(String)
-
-    def __repr__(self):
-        return f"<Scalar_String_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',value_r='{self.value_r}',value_w='{self.value_w}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array(Base):
-    """
-    Abstract class that represents Super-class of Array mapper classes
-    """
-    __abstract__ = True
-    # Primary key is not defined for tables which store values, but SQLAlchemy requires a mandatory 
-    # primary key definition. Anyway, this definition is on Python-side and does not compromise
-    # DBMS architecture
-    att_conf_id = Column(Integer, primary_key=True)
-    data_time = Column(TIMESTAMP)
-    recv_time = Column(TIMESTAMP)
-    insert_time = Column(TIMESTAMP, primary_key=True)
-    idx = Column(Integer, primary_key=True)
-    dim_x_r = Column(Integer)
-    dim_y_r = Column(Integer)
-    quality = Column(Integer)
-    att_error_desc_id = Column(Integer)
-
-class Array_Boolean(Array):
-    """
-    Abstract class that represents Parent class of Array Boolean mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Array_Boolean_RO(Array_Boolean):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devboolean_ro'
-    """
-    __tablename__ = 'att_array_devboolean_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_Boolean_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Boolean_RW(Array_Boolean):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devboolean_rw'
-    """
-    __tablename__ = 'att_array_devboolean_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Array_Boolean_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_UChar(Array):
-    """
-    Abstract class that represents Parent class of Array UChar mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Array_UChar_RO(Array_UChar):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devuchar_ro'
-    """
-    __tablename__ = 'att_array_devuchar_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_UChar_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_UChar_RW(Array_Boolean):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devuchar_rw'
-    """
-    __tablename__ = 'att_array_devuchar_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Array_UChar_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Double(Array):
-    """
-    Abstract class that represents Parent class of Array Double mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(DOUBLE)
-
-class Array_Double_RO(Array_Double):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devdouble_ro'
-    """
-    __tablename__ = 'att_array_devdouble_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_Double_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Double_RW(Array_Double):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devdouble_rw'
-    """
-    __tablename__ = 'att_array_devdouble_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(DOUBLE)
-
-    def __repr__(self):
-        return f"<Array_Double_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Encoded(Array):
-    """
-    Abstract class that represents Parent class of Array Encoded mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(BLOB)
-
-class Array_Encoded_RO(Array_Encoded):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devencoded_ro'
-    """
-    __tablename__ = 'att_array_devencoded_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_Encoded_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Encoded_RW(Array_Encoded):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devencoded_rw'
-    """
-    __tablename__ = 'att_array_devencoded_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(BLOB)
-
-    def __repr__(self):
-        return f"<Array_Encoded_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Enum(Array):
-    """
-    Abstract class that represents Parent class of Array Enum mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Array_Enum_RO(Array_Enum):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devenum_ro'
-    """
-    __tablename__ = 'att_array_devenum_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_Enum_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Enum_RW(Array_Enum):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devenum_rw'
-    """
-    __tablename__ = 'att_array_devenum_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Array_Enum_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Float(Array):
-    """
-    Abstract class that represents Parent class of Array Float mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(FLOAT)
-
-class Array_Float_RO(Array_Float):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devfloat_ro'
-    """
-    __tablename__ = 'att_array_devfloat_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_Float_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Float_RW(Array_Float):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devfloat_rw'
-    """
-    __tablename__ = 'att_array_devfloat_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(FLOAT)
-
-    def __repr__(self):
-        return f"<Array_Float_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Long64(Array):
-    """
-    Abstract class that represents Parent class of Array Long64 mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(BIGINT)
-
-class Array_Long64_RO(Array_Long64):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devlong64_ro'
-    """
-    __tablename__ = 'att_array_devlong64_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_Long64_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Long64_RW(Array_Long64):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devlong64_rw'
-    """
-    __tablename__ = 'att_array_devlong64_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(BIGINT)
-
-    def __repr__(self):
-        return f"<Array_Long64_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_ULong64(Array):
-    """
-    Abstract class that represents Parent class of Array ULong64 mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(INTEGER)
-
-class Array_ULong64_RO(Array_ULong64):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devulong64_ro'
-    """
-    __tablename__ = 'att_array_devulong64_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_ULong64_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_ULong64_RW(Array_ULong64):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devulong64_rw'
-    """
-    __tablename__ = 'att_array_devulong64_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(INTEGER)
-
-    def __repr__(self):
-        return f"<Array_ULong64_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-
-class Array_Long(Array):
-    """
-    Abstract class that represents Parent class of Array Long mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(INTEGER)
-
-class Array_Long_RO(Array_Long):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devlong_ro'
-    """
-    __tablename__ = 'att_array_devlong_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_Long_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Long_RW(Array_Long):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devlong_rw'
-    """
-    __tablename__ = 'att_array_devlong_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(INTEGER)
-
-    def __repr__(self):
-        return f"<Array_Long_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_ULong(Array):
-    """
-    Abstract class that represents Parent class of Array ULong mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(INTEGER)
-
-class Array_ULong_RO(Array_ULong):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devulong_ro'
-    """
-    __tablename__ = 'att_array_devulong_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_ULong_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_ULong_RW(Array_ULong):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devulong_rw'
-    """
-    __tablename__ = 'att_array_devulong_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(INTEGER)
-
-    def __repr__(self):
-        return f"<Array_ULong_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Short(Array):
-    """
-    Abstract class that represents Parent class of Array Short mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Array_Short_RO(Array_Short):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devshort_ro'
-    """
-    __tablename__ = 'att_array_devshort_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_Short_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_Short_RW(Array_Short):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devshort_rw'
-    """
-    __tablename__ = 'att_array_devshort_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Array_Short_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_State(Array):
-    """
-    Abstract class that represents Parent class of Array State mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(Integer)
-
-class Array_State_RO(Array_State):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devstate_ro'
-    """
-    __tablename__ = 'att_array_devstate_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_State_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_State_RW(Array_State):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devstate_rw'
-    """
-    __tablename__ = 'att_array_devstate_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(Integer)
-
-    def __repr__(self):
-        return f"<Array_State_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_String(Array):
-    """
-    Abstract class that represents Parent class of Array String mapper classes
-    """
-    # In the concrete inheritance use case, it is common that the base class is not represented 
-    # within the database, only the subclasses. In other words, the base class is abstract.
-    __abstract__ = True
-    value_r = Column(String)
-
-class Array_String_RO(Array_String):
-    """
-    Class that represents a Tango Array Read-Only Value mapped to table 'att_array_devstring_ro'
-    """
-    __tablename__ = 'att_array_devstring_ro'
-    __table_args__ = {'extend_existing': True}
-    
-    def __repr__(self):
-        return f"<Array_String_RO(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-class Array_String_RW(Array_String):
-    """
-    Class that represents a Tango Array Read-Write Value mapped to table 'att_array_devstring_rw'
-    """
-    __tablename__ = 'att_array_devstring_rw'
-    __table_args__ = {'extend_existing': True}
-    dim_x_w = Column(Integer)
-    dim_y_w = Column(Integer)
-    value_w = Column(String)
-
-    def __repr__(self):
-        return f"<Array_String_RW(att_conf_id='{self.att_conf_id}',data_time='{self.data_time}',recv_time='{self.recv_time}',insert_time='{self.insert_time}',idx='{self.idx}',dim_x_r='{self.dim_x_r}',dim_y_r='{self.dim_y_r}',value_r='{self.value_r}',dim_x_w='{self.dim_x_w}',dim_y_w='{self.dim_y_w}',value_w='%{self.value_w},quality='{self.quality}',att_error_desc_id='{self.att_error_desc_id}')>"
-
-def get_class_by_tablename(tablename: str):
-    """
-    Returns class reference mapped to a table.    
-    """
-    for mapper in Base.registry.mappers:
-        c = mapper.class_
-        classname = c.__name__
-        if not classname.startswith('_'):
-            if hasattr(c, '__tablename__') and c.__tablename__ == tablename:
-                return c
-    return None
-
-def build_array_from_record(rows: List[Array], dim_x: int):
-    """
-    Converts Array database items in Python lists
-    """
-    matrix = numpy.array([])
-    for i in range(0,dim_x):
-        x = numpy.array([item for item in rows if item.idx==i]) #group records by array index
-        if i==0:
-            matrix = numpy.append(matrix,x)    #append first row
-        else:
-            matrix = numpy.vstack([matrix,x])  #stack vertically
-    result = numpy.transpose(matrix)   #transpose -> each row is a distinct array of value
-    list_result = result.tolist()
-    return list_result
-    
-def get_values_from_record(data_matrix: List[Array]):
-    """
-    Returns a matrix of values from a matrix of Array records
-    """
-    array_matrix = numpy.matrix(data_matrix)
-    value_matrix = numpy.empty(array_matrix.shape)
-    for index in range(array_matrix.size):    # for each object element
-        value_matrix.itemset(index,array_matrix.item(index).value_r) # extract the value from object and put in the matrix
-    return value_matrix
-
diff --git a/tangostationcontrol/tangostationcontrol/toolkit/retriever.py b/tangostationcontrol/tangostationcontrol/toolkit/retriever.py
index 5c7426dbe41faf4ecd6d2498c809097335d107d5..c0364882ea635f715a0beabc3b91b96eecb017fc 100644
--- a/tangostationcontrol/tangostationcontrol/toolkit/retriever.py
+++ b/tangostationcontrol/tangostationcontrol/toolkit/retriever.py
@@ -8,7 +8,6 @@ from sqlalchemy import create_engine, and_
 from sqlalchemy.orm import sessionmaker
 from sqlalchemy.orm.exc import NoResultFound
 import importlib
-import numpy
 
 class Retriever(ABC):
     """
@@ -119,102 +118,6 @@ class Retriever(ABC):
             raise ValueError(f"Attribute {attribute_fqname} not found!") from e
         return result
 
-class RetrieverMySQL(Retriever):
-    
-    def __init__(self, cm_name: str = 'archiving/hdbpp/confmanager01'):
-        self.cm_name = cm_name
-
-        super().__init__()
-    
-    def connect_to_archiving_db(self):
-        """
-        Returns a session to a MySQL DBMS using default credentials.
-        """
-        creds = get_db_config(self.cm_name)
-
-        # Set sqlalchemy library connection
-        if creds["host"] == 'archiver-maria-db':
-            creds["libname"] = 'mysql+pymysql'         
-        else:
-            raise ValueError(f"Invalid hostname: {creds['host']}, we only support 'archiver-maria-db'")
-
-        Session = self.create_session(creds)
-        return Session()
-    
-    def set_archiver_base(self):
-        """
-        Sets the right mapper class following the DBMS connection
-        """    
-        return importlib.import_module('.archiver_base_mysql', package=__package__)
-    
-    def get_attribute_datatype(self,attribute_fqname: str):
-        """
-        Takes as input the fully-qualified name of an attribute and returns its Data-Type.
-        Data Type name indicates the type (e.g. string, int, ...) and the read/write property. The name is used
-        as DB table name suffix in which values are stored.
-        """
-        domain, family, member, name = split_tango_name(attribute_fqname,"attribute")
-        try:
-            result = self.session.query(self.ab.DataType.data_type).join(self.ab.Attribute,self.ab.Attribute.att_conf_data_type_id==self.ab.DataType.att_conf_data_type_id).\
-                        filter(and_(self.ab.Attribute.domain == domain, self.ab.Attribute.family == family, self.ab.Attribute.member == member, self.ab.Attribute.name == name)).one()
-            return result[0]
-        except (AttributeError, TypeError, NoResultFound) as e:
-            raise ValueError(f"Attribute {attribute_fqname} not found!") from e
-    
-    def get_attribute_value_by_hours(self,attribute_fqname: str, hours: float = 1.0):
-        """
-        Takes as input the attribute fully-qualified name and the number of past hours since the actual time 
-        (e.g. hours=1 retrieves values in the last hour, hours=8.5 retrieves values in the last eight hours and half).
-        Returns a list of timestamps and a list of values
-        """
-        attr_datatype = self.get_attribute_datatype(attribute_fqname)
-        # Retrieves the class that maps the DB table given the tablename
-        tablename = f"att_{attr_datatype}"
-        return super().get_attribute_value_by_hours(attribute_fqname,hours,tablename) 
-
-
-    def get_attribute_value_by_interval(self,attribute_fqname: str, start_time: datetime, stop_time: datetime):
-        """
-        Takes as input the attribute name and a certain starting and ending point-time. 
-        The datetime format is pretty flexible (e.g. "YYYY-MM-dd hh:mm:ss").
-        Returns a list of timestamps and a list of values
-        """
-        attr_datatype = self.get_attribute_datatype(attribute_fqname)
-        # Retrieves the class that maps the DB table given the tablename
-        tablename = f"att_{attr_datatype}"           
-        return super().get_attribute_value_by_interval(attribute_fqname,start_time,stop_time,tablename)
-    
-    # DRAFT #
-    def get_masked_fpga_temp(self,start_time: datetime, stop_time: datetime,temp_attr_name:str='stat/sdp/1/fpga_temp_r',
-                    mask_attr_name:str='stat/sdp/1/tr_fpga_mask_r'):
-        """
-        Returns a list of SDP/fpga_temp_r values, but only if SDP/tr_fpga_mask_r values are TRUE
-        """
-        mask_values = self.get_attribute_value_by_interval(mask_attr_name,start_time,stop_time)
-        temp_values = self.get_attribute_value_by_interval(temp_attr_name,start_time,stop_time)
-        # Since timestamps can be not syncrhonized, remove first or last element from arrays
-        if len(mask_values)==len(temp_values):
-            first_mask_datatime = mask_values[0].data_time
-            first_temp_datatime = temp_values[0].data_time
-            if (first_mask_datatime>first_temp_datatime):
-                mask_values = mask_values[:-int(mask_values[0].dim_x_r)]
-                temp_values = temp_values[int(temp_values[0].dim_x_r):]
-            elif (first_mask_datatime<first_temp_datatime):
-                mask_values = mask_values[int(mask_values[0].dim_x_r)]
-                temp_values = temp_values[:-int(temp_values[0].dim_x_r):]
-        else:
-            raise Exception
-        # Convert DB Array records into Python lists
-        mask_data = self.ab.build_array_from_record(mask_values,mask_values[0].dim_x_r)
-        temp_data = self.ab.build_array_from_record(temp_values,temp_values[0].dim_x_r)
-        # Extract only the value from the array 
-        mask_array_values = self.ab.get_values_from_record(mask_data)
-        temp_array_values = self.ab.get_values_from_record(temp_data)
-        # Multiply the matrix
-        #masked_values = np.multiply(temp_array_values,mask_array_values)
-        masked_values = numpy.ma.masked_array(temp_array_values,mask=numpy.invert(mask_array_values.astype(bool)))
-        return masked_values, mask_values, temp_values
-
 class RetrieverTimescale(Retriever):
     
     def __init__(self, cm_name: str = 'archiving/hdbppts/confmanager01'):