From edefb7c9d016c088234bef4627cbbcd0ee59e44b Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Fri, 14 Nov 2025 23:01:26 +0100 Subject: make lon/lat non-nullable I want to have more columns non-nullable, but it's a pain to change in SQLite. We can still try to be careful with new columns, though, and use nullable=False more often when appropriate. While this changes the schema without a new migration, I think for this case it is fine. --- fietsboek/alembic/versions/20251019_90b39fdf6e4b.py | 8 ++++---- fietsboek/models/track.py | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/fietsboek/alembic/versions/20251019_90b39fdf6e4b.py b/fietsboek/alembic/versions/20251019_90b39fdf6e4b.py index 0192920..825f774 100644 --- a/fietsboek/alembic/versions/20251019_90b39fdf6e4b.py +++ b/fietsboek/alembic/versions/20251019_90b39fdf6e4b.py @@ -19,8 +19,8 @@ def upgrade(): op.create_table('track_points', sa.Column('track_id', sa.Integer(), nullable=False), sa.Column('index', sa.Integer(), nullable=False), - sa.Column('longitude', sa.Float(), nullable=True), - sa.Column('latitude', sa.Float(), nullable=True), + sa.Column('longitude', sa.Float(), nullable=False), + sa.Column('latitude', sa.Float(), nullable=False), sa.Column('elevation', sa.Float(), nullable=True), sa.Column('time_offset', sa.Float(), nullable=True), sa.ForeignKeyConstraint(['track_id'], ['tracks.id'], name=op.f('fk_track_points_track_id_tracks')), @@ -29,8 +29,8 @@ def upgrade(): op.create_table('waypoints', sa.Column('id', sa.Integer(), nullable=False), sa.Column('track_id', sa.Integer(), nullable=False), - sa.Column('longitude', sa.Float(), nullable=True), - sa.Column('latitude', sa.Float(), nullable=True), + sa.Column('longitude', sa.Float(), nullable=False), + sa.Column('latitude', sa.Float(), nullable=False), sa.Column('elevation', sa.Float(), nullable=True), sa.Column('name', sa.Text(), nullable=True), sa.Column('description', sa.Text(), nullable=True), diff --git a/fietsboek/models/track.py b/fietsboek/models/track.py index 9c758c6..6e132ea 100644 --- a/fietsboek/models/track.py +++ b/fietsboek/models/track.py @@ -165,8 +165,8 @@ class Waypoint(Base): __tablename__ = "waypoints" id: Mapped[int] = mapped_column(Integer, primary_key=True) track_id: Mapped[int] = mapped_column(Integer, ForeignKey("tracks.id"), nullable=False) - longitude: Mapped[float | None] = mapped_column(Float) - latitude: Mapped[float | None] = mapped_column(Float) + longitude: Mapped[float] = mapped_column(Float, nullable=False) + latitude: Mapped[float] = mapped_column(Float, nullable=False) elevation: Mapped[float | None] = mapped_column(Float) name: Mapped[str | None] = mapped_column(Text) description: Mapped[str | None] = mapped_column(Text) @@ -181,8 +181,8 @@ class TrackPoint(Base): __tablename__ = "track_points" track_id: Mapped[int] = mapped_column(Integer, ForeignKey("tracks.id"), primary_key=True) index: Mapped[int] = mapped_column(Integer, primary_key=True) - longitude: Mapped[float | None] = mapped_column(Float) - latitude: Mapped[float | None] = mapped_column(Float) + longitude: Mapped[float] = mapped_column(Float, nullable=False) + latitude: Mapped[float] = mapped_column(Float, nullable=False) elevation: Mapped[float | None] = mapped_column(Float) time_offset: Mapped[float | None] = mapped_column(Float) @@ -194,8 +194,8 @@ class TrackPoint(Base): :return: The converted point. """ return geo.Point( - latitude=self.latitude or 0.0, - longitude=self.longitude or 0.0, + latitude=self.latitude, + longitude=self.longitude, elevation=self.elevation or 0.0, time_offset=self.time_offset or 0.0, ) -- cgit v1.2.3