diff --git a/app/model/aircraft_beacon.py b/app/model/aircraft_beacon.py index bbde49a..abfbe67 100644 --- a/app/model/aircraft_beacon.py +++ b/app/model/aircraft_beacon.py @@ -34,17 +34,6 @@ class AircraftBeacon(Beacon): location_mgrs_short = db.Column(db.String(9)) # reduced mgrs (9 chars), e.g. used for melissas range tool agl = db.Column(db.Float(precision=2)) - # Relations - receiver_id = db.Column(db.Integer, db.ForeignKey("receivers.id", ondelete="SET NULL")) - receiver = db.relationship("Receiver", foreign_keys=[receiver_id], backref="aircraft_beacons") - - device_id = db.Column(db.Integer, db.ForeignKey("devices.id", ondelete="SET NULL")) - device = db.relationship("Device", foreign_keys=[device_id], backref="aircraft_beacons") - - # Multi-column indices - db.Index("ix_aircraft_beacons_receiver_id_distance", "receiver_id", "distance") - db.Index("ix_aircraft_beacons_device_id_timestamp", "device_id", "timestamp") - def __repr__(self): return "" % ( self.address_type, @@ -139,7 +128,3 @@ class AircraftBeacon(Beacon): self.location_mgrs, self.location_mgrs_short, ] - - -db.Index("ix_aircraft_beacons_date_device_id_address", func.date(AircraftBeacon.timestamp), AircraftBeacon.device_id, AircraftBeacon.address) -db.Index("ix_aircraft_beacons_date_receiver_id_distance", func.date(AircraftBeacon.timestamp), AircraftBeacon.receiver_id, AircraftBeacon.distance) diff --git a/app/model/receiver_beacon.py b/app/model/receiver_beacon.py index 45f1901..e34c18c 100644 --- a/app/model/receiver_beacon.py +++ b/app/model/receiver_beacon.py @@ -8,60 +8,12 @@ class ReceiverBeacon(Beacon): __tablename__ = "receiver_beacons" # disable irrelevant aprs fields + relay = None track = None ground_speed = None - # ReceiverBeacon specific data - version = db.Column(db.String) - platform = db.Column(db.String) - cpu_load = db.Column(db.Float(precision=2)) - free_ram = db.Column(db.Float(precision=2)) - total_ram = db.Column(db.Float(precision=2)) - ntp_error = db.Column(db.Float(precision=2)) - rt_crystal_correction = db.Column(db.Float(precision=2)) - voltage = db.Column(db.Float(precision=2)) - amperage = db.Column(db.Float(precision=2)) - cpu_temp = db.Column(db.Float(precision=2)) - senders_visible = db.Column(db.Integer) - senders_total = db.Column(db.Integer) - rec_input_noise = db.Column(db.Float(precision=2)) - senders_signal = db.Column(db.Float(precision=2)) - senders_messages = db.Column(db.Integer) - good_senders_signal = db.Column(db.Float(precision=2)) - good_senders = db.Column(db.Integer) - good_and_bad_senders = db.Column(db.Integer) - - # User comment: used for additional information like hardware configuration, web site, email address, ... - user_comment = None - - # Relations - receiver_id = db.Column(db.Integer, db.ForeignKey("receivers.id", ondelete="SET NULL")) - receiver = db.relationship("Receiver", foreign_keys=[receiver_id], backref="receiver_beacons") - - # Multi-column indices - db.Index("ix_receiver_beacons_receiver_id_name", "receiver_id", "name") - def __repr__(self): - return "" % ( - self.version, - self.platform, - self.cpu_load, - self.free_ram, - self.total_ram, - self.ntp_error, - self.rt_crystal_correction, - self.voltage, - self.amperage, - self.cpu_temp, - self.senders_visible, - self.senders_total, - self.rec_input_noise, - self.senders_signal, - self.senders_messages, - self.good_senders_signal, - self.good_senders, - self.good_and_bad_senders, - ) + return "".format(**self) @classmethod def get_columns(self): @@ -74,24 +26,6 @@ class ReceiverBeacon(Beacon): "timestamp", # 'raw_message', # 'reference_timestamp', - "version", - "platform", - "cpu_load", - "free_ram", - "total_ram", - "ntp_error", - "rt_crystal_correction", - "voltage", - "amperage", - "cpu_temp", - "senders_visible", - "senders_total", - "rec_input_noise", - "senders_signal", - "senders_messages", - "good_senders_signal", - "good_senders", - "good_and_bad_senders", ] def get_values(self): @@ -104,25 +38,4 @@ class ReceiverBeacon(Beacon): self.timestamp, # self.raw_message, # self.reference_timestamp, - self.version, - self.platform, - self.cpu_load, - self.free_ram, - self.total_ram, - self.ntp_error, - self.rt_crystal_correction, - self.voltage, - self.amperage, - self.cpu_temp, - int(self.senders_visible) if self.senders_visible else None, - int(self.senders_total) if self.senders_visible else None, - self.rec_input_noise, - self.senders_signal, - int(self.senders_messages) if self.senders_messages else None, - self.good_senders_signal, - int(self.good_senders) if self.good_senders else None, - int(self.good_and_bad_senders) if self.good_and_bad_senders else None, ] - - -db.Index("ix_receiver_beacons_date_receiver_id", func.date(ReceiverBeacon.timestamp), ReceiverBeacon.receiver_id) diff --git a/migrations/versions/079fe885ae20_remove_non_position_fields_from_.py b/migrations/versions/079fe885ae20_remove_non_position_fields_from_.py new file mode 100644 index 0000000..23bd12b --- /dev/null +++ b/migrations/versions/079fe885ae20_remove_non_position_fields_from_.py @@ -0,0 +1,76 @@ +"""Remove non position fields from AircraftBeacon and ReceiverBeacon + +Revision ID: 079fe885ae20 +Revises: 6c19cedf5fa7 +Create Date: 2019-09-25 21:42:34.924732 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = '079fe885ae20' +down_revision = '6c19cedf5fa7' +branch_labels = None +depends_on = None + + +def upgrade(): + op.drop_constraint('aircraft_beacons_receiver_id_fkey', 'aircraft_beacons', type_='foreignkey') + op.drop_constraint('aircraft_beacons_device_id_fkey', 'aircraft_beacons', type_='foreignkey') + op.drop_column('aircraft_beacons', 'device_id') + op.drop_column('aircraft_beacons', 'receiver_id') + + op.drop_constraint('receiver_beacons_receiver_id_fkey', 'receiver_beacons', type_='foreignkey') + op.drop_column('receiver_beacons', 'receiver_id') + + op.drop_column('receiver_beacons', 'total_ram') + op.drop_column('receiver_beacons', 'senders_visible') + op.drop_column('receiver_beacons', 'senders_messages') + op.drop_column('receiver_beacons', 'cpu_temp') + op.drop_column('receiver_beacons', 'platform') + op.drop_column('receiver_beacons', 'rec_input_noise') + op.drop_column('receiver_beacons', 'ntp_error') + op.drop_column('receiver_beacons', 'good_senders') + op.drop_column('receiver_beacons', 'senders_total') + op.drop_column('receiver_beacons', 'cpu_load') + op.drop_column('receiver_beacons', 'free_ram') + op.drop_column('receiver_beacons', 'good_and_bad_senders') + op.drop_column('receiver_beacons', 'amperage') + op.drop_column('receiver_beacons', 'voltage') + op.drop_column('receiver_beacons', 'senders_signal') + op.drop_column('receiver_beacons', 'version') + op.drop_column('receiver_beacons', 'relay') + op.drop_column('receiver_beacons', 'rt_crystal_correction') + op.drop_column('receiver_beacons', 'good_senders_signal') + + +def downgrade(): + op.add_column('receiver_beacons', sa.Column('receiver_id', sa.INTEGER(), autoincrement=False, nullable=True)) + op.create_foreign_key('receiver_beacons_receiver_id_fkey', 'receiver_beacons', 'receivers', ['receiver_id'], ['id'], ondelete='SET NULL') + + op.add_column('receiver_beacons', sa.Column('good_senders_signal', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('rt_crystal_correction', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('relay', sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('version', sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('senders_signal', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('voltage', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('amperage', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('good_and_bad_senders', sa.INTEGER(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('free_ram', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('cpu_load', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('senders_total', sa.INTEGER(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('good_senders', sa.INTEGER(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('ntp_error', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('rec_input_noise', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('platform', sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('cpu_temp', sa.REAL(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('senders_messages', sa.INTEGER(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('senders_visible', sa.INTEGER(), autoincrement=False, nullable=True)) + op.add_column('receiver_beacons', sa.Column('total_ram', sa.REAL(), autoincrement=False, nullable=True)) + + op.add_column('aircraft_beacons', sa.Column('receiver_id', sa.INTEGER(), autoincrement=False, nullable=True)) + op.add_column('aircraft_beacons', sa.Column('device_id', sa.INTEGER(), autoincrement=False, nullable=True)) + op.create_foreign_key('aircraft_beacons_device_id_fkey', 'aircraft_beacons', 'devices', ['device_id'], ['id'], ondelete='SET NULL') + op.create_foreign_key('aircraft_beacons_receiver_id_fkey', 'aircraft_beacons', 'receivers', ['receiver_id'], ['id'], ondelete='SET NULL')