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