diff --git a/ogn/model/aircraft_beacon.py b/ogn/model/aircraft_beacon.py index f75360e..ef578c2 100644 --- a/ogn/model/aircraft_beacon.py +++ b/ogn/model/aircraft_beacon.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, String, Integer, Float, Boolean, SmallInteger, ForeignKey +from sqlalchemy import Column, String, Integer, Float, Boolean, SmallInteger, ForeignKey, Index from sqlalchemy.orm import relationship from .beacon import Beacon @@ -42,12 +42,16 @@ class AircraftBeacon(Beacon): distance = Column(Float) # Relations - receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL'), index=True) + receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL')) receiver = relationship('Receiver', foreign_keys=[receiver_id]) - device_id = Column(Integer, ForeignKey('device.id', ondelete='SET NULL'), index=True) + device_id = Column(Integer, ForeignKey('device.id', ondelete='SET NULL')) device = relationship('Device', foreign_keys=[device_id]) + # Multi-column indices + Index('ix_aircraft_beacon_receiver_id_receiver_name', 'receiver_id', 'receiver_name') + Index('ix_aircraft_beacon_device_id_address', 'device_id', 'address') + def __repr__(self): return "" % ( self.address_type, diff --git a/ogn/model/receiver_beacon.py b/ogn/model/receiver_beacon.py index a1522c0..f9a51e2 100644 --- a/ogn/model/receiver_beacon.py +++ b/ogn/model/receiver_beacon.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, Float, String, Integer, SmallInteger, ForeignKey +from sqlalchemy import Column, Float, String, Integer, SmallInteger, ForeignKey, Index from sqlalchemy.orm import relationship from .beacon import Beacon @@ -34,9 +34,12 @@ class ReceiverBeacon(Beacon): status = Column(SmallInteger, index=True) # Relations - receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL'), index=True) + receiver_id = Column(Integer, ForeignKey('receiver.id', ondelete='SET NULL')) receiver = relationship('Receiver', foreign_keys=[receiver_id]) + # Multi-column indices + Index('ix_receiver_beacon_receiver_id_name', 'receiver_id', 'name') + def __repr__(self): return "" % ( self.version, diff --git a/tests/model/all_classes.py b/tests/model/all_classes.py index 2a6072d..6ea4720 100644 --- a/tests/model/all_classes.py +++ b/tests/model/all_classes.py @@ -15,5 +15,6 @@ class TestStringMethods(unittest.TestCase): except AttributeError as e: raise AssertionError(e) + if __name__ == '__main__': unittest.main()