diff --git a/requirements/base.txt b/requirements/base.txt index 3cc4f626bb..195692b9df 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -77,3 +77,6 @@ django-braces==1.14.0 django-oauth-toolkit==1.2.0 future==0.18.3 + +# db +django-timescaledb diff --git a/seed/migrations/0215_auto_20240105_1306.py b/seed/migrations/0215_auto_20240105_1306.py new file mode 100644 index 0000000000..3ee60b296c --- /dev/null +++ b/seed/migrations/0215_auto_20240105_1306.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.23 on 2024-01-05 21:06 + +import timescale.db.models.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seed', '0214_delete_filtergroup_labels'), + ] + + operations = [ + migrations.AlterField( + model_name='sensorreading', + name='timestamp', + field=timescale.db.models.fields.TimescaleDateTimeField(interval='7 days'), + ), + migrations.AlterUniqueTogether( + name='sensor', + unique_together={('data_logger', 'column_name'), ('data_logger', 'display_name')}, + ), + ] diff --git a/seed/models/sensors.py b/seed/models/sensors.py index e846dcd143..0006582880 100644 --- a/seed/models/sensors.py +++ b/seed/models/sensors.py @@ -4,6 +4,7 @@ See also https://github.com/seed-platform/seed/main/LICENSE.md """ from django.db import models +from timescale.db.models.fields import TimescaleDateTimeField from seed.models import Property @@ -44,13 +45,15 @@ class Sensor(models.Model): column_name = models.CharField(max_length=255) class Meta: - unique_together = ('data_logger', 'display_name') - unique_together = ('data_logger', 'column_name') + unique_together = ( + ('data_logger', 'display_name'), + ('data_logger', 'column_name'), + ) class SensorReading(models.Model): reading = models.FloatField(null=True) - timestamp = models.DateTimeField() + timestamp = TimescaleDateTimeField(interval="7 days") sensor = models.ForeignKey( Sensor, on_delete=models.CASCADE,