diff --git a/.gitignore b/.gitignore
index 6e87e73443ebee35e218f004d38d002244d4ebbe..6ef315ca54660eeeb32561d3b3f3f1e1b1142555 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
 /Pipfile.lock
 /settings.json
-/src/storageLeaf.db
+/src/*.db
diff --git a/src/StorageLeaf.py b/src/StorageLeaf.py
index 36ec3249b07d83e2650b8f48760c96e9d6f9d2fc..23cb865dfb63bc0b2f32a472a7fe437735b861d5 100644
--- a/src/StorageLeaf.py
+++ b/src/StorageLeaf.py
@@ -3,7 +3,7 @@ import json
 import uvicorn
 from TheCodeLabs_BaseUtils.DefaultLogger import DefaultLogger
 from fastapi import FastAPI
-from starlette.responses import RedirectResponse, JSONResponse
+from starlette.responses import RedirectResponse
 
 from Settings import SETTINGS
 from logic import Constants
@@ -13,12 +13,14 @@ from routers import DeviceRouter, SensorRouter, MeasurementRouter
 
 LOGGER = DefaultLogger().create_logger_if_not_exists(Constants.APP_NAME)
 
-# create database tables
-Models.Base.metadata.create_all(bind=engine)
+databaseSettings = SETTINGS['database']
 
 with open('version.json', 'r', encoding='UTF-8') as f:
     VERSION = json.load(f)['version']
 
+# create database tables
+Models.Base.metadata.create_all(bind=engine)
+
 app = FastAPI(title=Constants.APP_NAME,
               version=VERSION['name'],
               description='The StorageLeaf API',
diff --git a/src/logic/databaseNew/Crud.py b/src/logic/databaseNew/Crud.py
index 28499428733135fcb8959cdd1ebdc256b22267de..ecfb9c22a17d77d6d0e1b8cd4d1a938e5a2c0aa0 100644
--- a/src/logic/databaseNew/Crud.py
+++ b/src/logic/databaseNew/Crud.py
@@ -3,10 +3,26 @@ from datetime import datetime
 from sqlalchemy import and_
 from sqlalchemy.orm import Session
 
+from Settings import SETTINGS
+from logic.BackupService import BackupService
 from logic.databaseNew import Models, Schemas
 
 DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
 
+BACKUP_SERVICE = BackupService(SETTINGS['database']['databasePath'], **SETTINGS['database']['backup'])
+
+
+def notify_backup_service(backupService: BackupService):
+    def inner(func):
+        def wrapper(*args, **kwargs):
+            returnValue = func(*args, **kwargs)
+            backupService.perform_modification()
+            return returnValue
+
+        return wrapper
+
+    return inner
+
 
 # ===== devices =====
 
@@ -23,6 +39,7 @@ def get_device_by_name(db: Session, name: str):
     return db.query(Models.Device).filter(Models.Device.name == name).first()
 
 
+@notify_backup_service(BACKUP_SERVICE)
 def create_device(db: Session, device: Schemas.DeviceCreate):
     dbDevice = Models.Device(name=device.name)
     db.add(dbDevice)
@@ -31,6 +48,7 @@ def create_device(db: Session, device: Schemas.DeviceCreate):
     return dbDevice
 
 
+@notify_backup_service(BACKUP_SERVICE)
 def delete_device(db: Session, device: Schemas.Device):
     db.delete(device)
     db.commit()
@@ -51,6 +69,7 @@ def get_sensor_by_name_and_device_id(db: Session, sensorName: str, deviceId: int
         Models.Sensor.name == sensorName and Models.Sensor.deviceId == deviceId).first()
 
 
+@notify_backup_service(BACKUP_SERVICE)
 def create_sensor(db: Session, sensor: Schemas.SensorCreate):
     dbSensor = Models.Sensor(**sensor.dict())
     db.add(dbSensor)
@@ -59,6 +78,7 @@ def create_sensor(db: Session, sensor: Schemas.SensorCreate):
     return dbSensor
 
 
+@notify_backup_service(BACKUP_SERVICE)
 def delete_sensor(db: Session, sensor: Schemas.Sensor):
     db.delete(sensor)
     db.commit()
@@ -94,6 +114,7 @@ def get_measurement(db: Session, measurementId: int):
     return db.query(Models.Measurement).filter(Models.Measurement.id == measurementId).first()
 
 
+@notify_backup_service(BACKUP_SERVICE)
 def create_measurement(db: Session, measurement: Schemas.MeasurementCreate):
     dbMeasurement = Models.Measurement(**measurement.dict(), timestamp=__get_current_datetime())
     db.add(dbMeasurement)
@@ -102,6 +123,7 @@ def create_measurement(db: Session, measurement: Schemas.MeasurementCreate):
     return dbMeasurement
 
 
+@notify_backup_service(BACKUP_SERVICE)
 def delete_measurement(db: Session, measurement: Schemas.Measurement):
     db.delete(measurement)
     db.commit()