diff --git a/code/alembic/versions/a0593613bf91_calibrationmeasurement_added_.py b/code/alembic/versions/a0593613bf91_calibrationmeasurement_added_.py deleted file mode 100644 index e140128..0000000 --- a/code/alembic/versions/a0593613bf91_calibrationmeasurement_added_.py +++ /dev/null @@ -1,32 +0,0 @@ -"""CalibrationMeasurement added relationships - -Revision ID: a0593613bf91 -Revises: fc8c3d3efd58 -Create Date: 2025-02-24 14:37:56.645678 - -""" -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision: str = 'a0593613bf91' -down_revision: Union[str, None] = 'fc8c3d3efd58' -branch_labels: Union[str, Sequence[str], None] = None -depends_on: Union[str, Sequence[str], None] = None - - -def upgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('values', sa.Column('calibration_measurement_id', sa.Integer(), nullable=True)) - op.create_foreign_key(None, 'values', 'calibration_measurements', ['calibration_measurement_id'], ['id']) - # ### end Alembic commands ### - - -def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'values', type_='foreignkey') - op.drop_column('values', 'calibration_measurement_id') - # ### end Alembic commands ### diff --git a/code/alembic/versions/e2dda8ce7cd2_fixed_name.py b/code/alembic/versions/e2dda8ce7cd2_fixed_name.py deleted file mode 100644 index 42394f6..0000000 --- a/code/alembic/versions/e2dda8ce7cd2_fixed_name.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Fixed name - -Revision ID: e2dda8ce7cd2 -Revises: a0593613bf91 -Create Date: 2025-02-24 14:40:49.184316 - -""" -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision: str = 'e2dda8ce7cd2' -down_revision: Union[str, None] = 'a0593613bf91' -branch_labels: Union[str, Sequence[str], None] = None -depends_on: Union[str, Sequence[str], None] = None - - -def upgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - pass - # ### end Alembic commands ### - - -def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - pass - # ### end Alembic commands ### diff --git a/code/alembic/versions/fc8c3d3efd58_added_calibrationmeasurement_table.py b/code/alembic/versions/fc8c3d3efd58_added_calibrationmeasurement_table.py deleted file mode 100644 index 1d3fdf1..0000000 --- a/code/alembic/versions/fc8c3d3efd58_added_calibrationmeasurement_table.py +++ /dev/null @@ -1,42 +0,0 @@ -"""Added CalibrationMeasurement Table - -Revision ID: fc8c3d3efd58 -Revises: 80277768fe1d -Create Date: 2025-02-24 14:30:44.766046 - -""" -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision: str = 'fc8c3d3efd58' -down_revision: Union[str, None] = '80277768fe1d' -branch_labels: Union[str, Sequence[str], None] = None -depends_on: Union[str, Sequence[str], None] = None - - -def upgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('calibration_measurements', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('time_received', sa.DateTime(), nullable=True), - sa.Column('time_measured', sa.DateTime(), nullable=True), - sa.Column('sensor_model', sa.Integer(), nullable=True), - sa.Column('location_id', sa.Integer(), nullable=True), - sa.Column('station_id', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['location_id'], ['locations.id'], ), - sa.ForeignKeyConstraint(['station_id'], ['stations.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_calibration_measurements_id'), 'calibration_measurements', ['id'], unique=False) - # ### end Alembic commands ### - - -def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_calibration_measurements_id'), table_name='calibration_measurements') - op.drop_table('calibration_measurements') - # ### end Alembic commands ### diff --git a/code/models.py b/code/models.py index 653fb4d..a06f21e 100644 --- a/code/models.py +++ b/code/models.py @@ -59,7 +59,6 @@ class Location(Base): country = relationship("Country") stations = relationship("Station", back_populates="location") measurements = relationship("Measurement", back_populates="location") - calibration_measurements = relationship("CalibrationMeasurement", back_populates="location") class Station(Base): @@ -75,7 +74,6 @@ class Station(Base): location_id = Column(Integer, ForeignKey('locations.id')) location = relationship("Location", back_populates="stations") measurements = relationship("Measurement", back_populates="station") - calibration_measurements = relationship("CalibrationMeasurement", back_populates="station") hourly_avg = relationship("HourlyDimensionAverages", back_populates="station") stationStatus = relationship("StationStatus", back_populates="station") @@ -95,21 +93,6 @@ class Measurement(Base): values = relationship("Values", back_populates="measurement") -class CalibrationMeasurement(Base): - __tablename__ = "calibration_measurements" - - id = Column(Integer, primary_key=True, index=True) - time_received = Column(DateTime) - time_measured = Column(DateTime) - sensor_model = Column(Integer) - # Relationships: - location_id = Column(Integer, ForeignKey('locations.id')) - location = relationship("Location", back_populates="calibration_measurements") - station_id = Column(Integer, ForeignKey('stations.id')) - station = relationship("Station", back_populates="calibration_measurements") - values = relationship("Values", back_populates="calibration_measurement") - - class Values(Base): __tablename__ = "values" @@ -120,9 +103,6 @@ class Values(Base): measurement_id = Column(Integer, ForeignKey('measurements.id')) measurement = relationship("Measurement", back_populates="values") - calibration_measurement_id = Column(Integer, ForeignKey('calibration_measurements.id')) - calibration_measurement = relationship("CalibrationMeasurement", back_populates="values") - class StationStatus(Base): __tablename__ = "stationStatus" diff --git a/code/routers/station.py b/code/routers/station.py index fdf5ca5..b6c08fc 100644 --- a/code/routers/station.py +++ b/code/routers/station.py @@ -11,7 +11,7 @@ from enum import Enum from itertools import groupby -from models import Station, Location, Measurement, CalibrationMeasurement, Values, StationStatus, HourlyDimensionAverages, City +from models import Station, Location, Measurement, Values, StationStatus, HourlyDimensionAverages, City from schemas import StationDataCreate, SensorsCreate, StationStatusCreate from utils import get_or_create_location, download_csv, get_or_create_station, standard_output_to_csv, standard_output_to_json from enums import Precision, OutputFormat, Order, Dimension @@ -232,11 +232,6 @@ async def create_station_data( db: Session = Depends(get_db) ): - MeasurementClass = Measurement - - if station.calibration_mode: - MeasurementClass = CalibrationMeasurement - db_station = get_or_create_station( db = db, station = station @@ -248,10 +243,10 @@ async def create_station_data( # Durch alle Sensoren iterieren for sensor_id, sensor_data in sensors.root.items(): # Prüfen, ob bereits eine Messung mit dem gleichen time_measured und sensor_model existiert - existing_measurement = db.query(MeasurementClass).filter( - MeasurementClass.station_id == db_station.id, - MeasurementClass.time_measured == station.time, - MeasurementClass.sensor_model == sensor_data.type + existing_measurement = db.query(Measurement).filter( + Measurement.station_id == db_station.id, + Measurement.time_measured == station.time, + Measurement.sensor_model == sensor_data.type ).first() if existing_measurement: @@ -261,7 +256,7 @@ async def create_station_data( ) # Wenn keine bestehende Messung gefunden wurde, füge eine neue hinzu - db_measurement = MeasurementClass( + db_measurement = Measurement( sensor_model=sensor_data.type, station_id=db_station.id, time_measured=station.time, @@ -274,20 +269,11 @@ async def create_station_data( # Werte (dimension, value) für die Messung hinzufügen for dimension, value in sensor_data.data.items(): - db_value = None - if station.calibration_mode: - db_value = Values( - dimension=dimension, - value=value, - calibration_measurement_id=db_measurement.id - ) - else: - db_value = Values( - dimension=dimension, - value=value, - measurement_id=db_measurement.id - ) - + db_value = Values( + dimension=dimension, + value=value, + measurement_id=db_measurement.id + ) db.add(db_value) db_station.last_active = station.time diff --git a/code/schemas.py b/code/schemas.py index e2d2313..65c1960 100644 --- a/code/schemas.py +++ b/code/schemas.py @@ -21,7 +21,6 @@ class StationDataCreate(BaseModel): apikey: str location: LocationCreate source: Optional[int] = 1 - calibration_mode: bool class SensorDataCreate(BaseModel):