diff --git a/tangostationcontrol/tangostationcontrol/toolkit/archiver.py b/tangostationcontrol/tangostationcontrol/toolkit/archiver.py
index 5dde670906bbff92def1d51b2cb0597477d53f2d..117c3432725bad89fa71e412f635a585a0bb5d9b 100644
--- a/tangostationcontrol/tangostationcontrol/toolkit/archiver.py
+++ b/tangostationcontrol/tangostationcontrol/toolkit/archiver.py
@@ -3,7 +3,7 @@
 import logging
 
 from tango import DeviceProxy, AttributeProxy, DevState, DevFailed
-from toolkit.archiver_util import get_db_config, attribute_name_from_url, device_name_url
+from tangostationcontrol.toolkit.archiver_util import get_db_config, attribute_name_from_url, device_name_url, attribute_name_url
 
 import time
 import json
@@ -277,7 +277,7 @@ class Archiver():
 
         # search returns all matches in which attribute_name is part of the name,
         # so check whether an exact match is included.
-        return attribute_name_from_url(attribute_name) in attributes
+        return any(attribute_name.lower() in a for a in attributes)
     
     def update_archiving_attribute(self, attribute_name: str, polling_period: int, event_period: int, strategy: str = 'RUN'):
         """
diff --git a/tangostationcontrol/tangostationcontrol/toolkit/archiver_base_ts.py b/tangostationcontrol/tangostationcontrol/toolkit/archiver_base_ts.py
index 71ffc52d4f51bbd8a5f5ac211b4ab561cfa1281b..96d91146f43f447f5bc71fa1fa9cb267dafcd230 100644
--- a/tangostationcontrol/tangostationcontrol/toolkit/archiver_base_ts.py
+++ b/tangostationcontrol/tangostationcontrol/toolkit/archiver_base_ts.py
@@ -24,52 +24,65 @@ class Lofar_Scalar_Attribute(Base):
     data_time = Column(TIMESTAMP, primary_key=True)
     device = Column(String, primary_key=True)
     name = Column(String, primary_key=True)
-    value = Column(FLOAT)
 
     def __repr__(self):
         return f"<Attribute(device='{self.device}', name='{self.name}', data_time='{self.data_time}',value='{self.value}'>"
 
 class Lofar_Scalar_Boolean(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_boolean'
+    value = Column(Boolean)
 
 class Lofar_Scalar_Double(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_double'
+    value = Column(FLOAT)
 
 class Lofar_Scalar_Encoded(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_encoded'
+    value = Column(BYTEA)
 
 class Lofar_Scalar_Enum(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_enum'
+    value = Column(INTEGER)
 
 class Lofar_Scalar_Float(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_float'
+    value = Column(FLOAT)
 
 class Lofar_Scalar_Long(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_long'
+    value = Column(INT4RANGE)
 
 class Lofar_Scalar_Long64(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_long64'
+    value = Column(INT8RANGE)
 
 class Lofar_Scalar_Short(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_short'
+    value = Column(INTEGER)
 
 class Lofar_Scalar_State(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_state'
+    value = Column(INTEGER)
 
 class Lofar_Scalar_String(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_string'
+    value = Column(TEXT)
 
 class Lofar_Scalar_Uchar(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_uchar'
+    value = Column(INTEGER)
 
 class Lofar_Scalar_Ulong(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_ulong'
+    value = Column(INTEGER)
 
 class Lofar_Scalar_Ulong64(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_ulong64'
+    value = Column(INTEGER)
 
 class Lofar_Scalar_Ushort(Lofar_Scalar_Attribute):
     __tablename__ = 'lofar_scalar_ushort'
+    value = Column(INTEGER)
 
 class Lofar_Array_Attribute(Base):
     """
@@ -82,52 +95,65 @@ class Lofar_Array_Attribute(Base):
     device = Column(String, primary_key=True)
     name = Column(String, primary_key=True)
     x = Column(INTEGER, primary_key=True)
-    value = Column(FLOAT)
 
     def __repr__(self):
         return f"<Attribute(device='{self.device}', name='{self.name}', data_time='{self.data_time}',index='{self.x}',value='{self.value}'>"
 
 class Lofar_Array_Boolean(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_boolean'
+    value = Column(Boolean)
 
 class Lofar_Array_Double(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_double'
+    value = Column(FLOAT)
 
 class Lofar_Array_Encoded(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_encoded'
+    value = Column(BYTEA)
 
 class Lofar_Array_Enum(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_enum'
+    value = Column(INTEGER)
 
 class Lofar_Array_Float(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_float'
+    value = Column(FLOAT)
 
 class Lofar_Array_Long(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_long'
+    value = Column(INT4RANGE)
 
 class Lofar_Array_Long64(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_long64'
+    value = Column(INT8RANGE)
 
 class Lofar_Array_Short(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_short'
+    value = Column(INTEGER)
 
 class Lofar_Array_State(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_state'
+    value = Column(INTEGER)
 
 class Lofar_Array_String(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_string'
+    value = Column(TEXT)
 
 class Lofar_Array_Uchar(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_uchar'
+    value = Column(INTEGER)
 
 class Lofar_Array_Ulong(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_ulong'
+    value = Column(INTEGER)
 
 class Lofar_Array_Ulong64(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_ulong64'
+    value = Column(INTEGER)
 
 class Lofar_Array_Ushort(Lofar_Array_Attribute):
     __tablename__ = 'lofar_array_ushort'
+    value = Column(INTEGER)
 # ----------------- ----------------- ----------------- #
 
 class Attribute(Base):
diff --git a/tangostationcontrol/tangostationcontrol/toolkit/archiver_util.py b/tangostationcontrol/tangostationcontrol/toolkit/archiver_util.py
index 058594f1b420995e7b773ccbaaf222899d6ede8c..7d808edc3e0fbe030b9bb4728a81abf93e56d73c 100644
--- a/tangostationcontrol/tangostationcontrol/toolkit/archiver_util.py
+++ b/tangostationcontrol/tangostationcontrol/toolkit/archiver_util.py
@@ -44,6 +44,19 @@ def device_name_url(device_name:str, tango_host:str = 'databaseds:10000'):
 
     return f"tango://{tango_host}/{device_name}"
 
+def attribute_name_url(attribute_name:str, tango_host:str = 'databaseds:10000'):
+    """
+    For some operations Tango devices must be transformed from the form 'domain/family/name/attribute'
+    to 'tango://db:port/domain/family/name/attribute'
+    """
+    if attribute_name.startswith('tango://'):
+        return attribute_name
+
+    if len(attribute_name.split('/')) != 4:
+        raise ValueError(f"Expected attribute name of format 'domain/family/name/attribute', got {attribute_name}")
+
+    return f"tango://{tango_host}/{attribute_name}"
+
 def split_tango_name(tango_fqname:str, tango_type:str):
     """
     Helper function to split device or attribute Tango full qualified names
diff --git a/tangostationcontrol/tangostationcontrol/toolkit/retriever.py b/tangostationcontrol/tangostationcontrol/toolkit/retriever.py
index bedd970d117c52a3986c400d2ff68fb35f0c66b6..5c7426dbe41faf4ecd6d2498c809097335d107d5 100644
--- a/tangostationcontrol/tangostationcontrol/toolkit/retriever.py
+++ b/tangostationcontrol/tangostationcontrol/toolkit/retriever.py
@@ -1,6 +1,6 @@
 #! /usr/bin/env python3
 
-from toolkit.archiver_util import get_db_config, split_tango_name
+from tangostationcontrol.toolkit.archiver_util import get_db_config, split_tango_name
 
 from abc import ABC, abstractmethod
 from datetime import datetime, timedelta