From 2a18df09c2ac2ab446afbebd7394037ba4cfd8b6 Mon Sep 17 00:00:00 2001 From: Paul Leclercq Date: Thu, 3 Oct 2024 16:17:12 +0200 Subject: [PATCH] fix: right column type for date --- .../43103d5b49c9_program_add_start_end_date_for_grid_.py | 4 ++-- postgres/schemas/models.py | 8 ++++++-- transform_program.py | 3 +++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/alembic/versions/43103d5b49c9_program_add_start_end_date_for_grid_.py b/alembic/versions/43103d5b49c9_program_add_start_end_date_for_grid_.py index 0a66a5fa..da0a72b9 100644 --- a/alembic/versions/43103d5b49c9_program_add_start_end_date_for_grid_.py +++ b/alembic/versions/43103d5b49c9_program_add_start_end_date_for_grid_.py @@ -20,8 +20,8 @@ def upgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### - op.add_column('channel_metadata', sa.Column('program_grid_start', sa.String(), server_default='2023-04-01', nullable=False)) - op.add_column('channel_metadata', sa.Column('program_grid_end', sa.String(), server_default='', nullable=True)) + op.add_column('channel_metadata', sa.Column('program_grid_start', sa.DateTime(), nullable=True)) + op.add_column('channel_metadata', sa.Column('program_grid_end', sa.DateTime(), nullable=True)) # ### end Alembic commands ### diff --git a/postgres/schemas/models.py b/postgres/schemas/models.py index 67d97b86..d471e8be 100644 --- a/postgres/schemas/models.py +++ b/postgres/schemas/models.py @@ -93,8 +93,8 @@ class Channel_Metadata(Base): id = Column(Text, primary_key=True) channel_name = Column(String, nullable=False) channel_title = Column(String, nullable=False) - program_grid_start = Column(String, nullable=False, server_default='2023-04-01') - program_grid_end = Column(String, nullable=True, server_default='') + program_grid_start = Column(DateTime(), nullable=False, server_default='2023-04-01') + program_grid_end = Column(DateTime(), nullable=True, server_default='') duration_minutes= Column(Integer) weekday= Column(Integer) @@ -113,6 +113,8 @@ class Program_Metadata(Base): public = Column(Boolean, nullable=True) infocontinue = Column(Boolean, nullable=True) radio = Column(Boolean, nullable=True) + program_grid_start = Column(DateTime(), nullable=True) + program_grid_end = Column(DateTime(), nullable=True) def get_sitemap(id: str): session = get_db_session() @@ -200,6 +202,8 @@ def update_program_metadata(engine): 'channel_program_type': item['program_type'], 'start': item['start'], 'end': item['end'], + 'program_grid_start': datetime.strptime(item['program_grid_start'], '%Y-%m-%d'), + 'program_grid_end': datetime.strptime(item['program_grid_end'], '%Y-%m-%d'), } session.merge(Program_Metadata(**metadata)) diff --git a/transform_program.py b/transform_program.py index 4f2b1345..95ae0f66 100644 --- a/transform_program.py +++ b/transform_program.py @@ -152,6 +152,9 @@ def generate_program_id(channel_name, weekday, program_name): end_time = program_data['end'] duration_minutes = calculate_duration(start_time, end_time) + if program_data['program_grid_start'] == '': + program_data['program_grid_start'] = '2100-01-01' + # Add duration to the program data program_data['duration'] = duration_minutes