From 2cf44fe642c41eb1cb712b8049c45c81aa02a375 Mon Sep 17 00:00:00 2001 From: cottongin Date: Mon, 6 Apr 2026 21:40:32 -0400 Subject: [PATCH] chore: add timezone migration script Made-with: Cursor --- scripts/migrate_timezones.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/migrate_timezones.py diff --git a/scripts/migrate_timezones.py b/scripts/migrate_timezones.py new file mode 100644 index 0000000..b9e28e7 --- /dev/null +++ b/scripts/migrate_timezones.py @@ -0,0 +1,29 @@ +from datetime import timezone +from zoneinfo import ZoneInfo +from app import create_app, db +from src.models import Article, Issue + +def migrate(): + app = create_app(start_scheduler=False) + local_tz = ZoneInfo("America/New_York") + + with app.app_context(): + # Migrate Articles + for article in Article.query.all(): + # Assume existing naive datetime is UTC + utc_dt = article.pub_date.replace(tzinfo=timezone.utc) + article.pub_date = utc_dt.astimezone(local_tz).replace(tzinfo=None) + + utc_fetched = article.fetched_at.replace(tzinfo=timezone.utc) + article.fetched_at = utc_fetched.astimezone(local_tz).replace(tzinfo=None) + + # Migrate Issues + for issue in Issue.query.all(): + utc_created = issue.created_at.replace(tzinfo=timezone.utc) + issue.created_at = utc_created.astimezone(local_tz).replace(tzinfo=None) + + db.session.commit() + print("Migration complete.") + +if __name__ == "__main__": + migrate()