chore: add timezone migration script
Made-with: Cursor
This commit is contained in:
29
scripts/migrate_timezones.py
Normal file
29
scripts/migrate_timezones.py
Normal file
@@ -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()
|
||||||
Reference in New Issue
Block a user