51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
"""
|
|
Fix blog post published_at dates to be in the past
|
|
"""
|
|
import sys
|
|
from pathlib import Path
|
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
|
|
from sqlalchemy.orm import Session
|
|
from src.config.database import SessionLocal
|
|
from src.models.blog import BlogPost
|
|
from datetime import datetime, timedelta
|
|
|
|
def fix_blog_dates():
|
|
"""Update all blog posts to have published_at dates in the past"""
|
|
db: Session = SessionLocal()
|
|
|
|
try:
|
|
# Get all published posts
|
|
posts = db.query(BlogPost).filter(BlogPost.is_published == True).order_by(BlogPost.created_at.asc()).all()
|
|
|
|
if not posts:
|
|
print("No published posts found.")
|
|
return
|
|
|
|
# Set base date to 60 days ago
|
|
base_date = datetime.utcnow() - timedelta(days=60)
|
|
|
|
updated = 0
|
|
for i, post in enumerate(posts):
|
|
# Set each post's date going backwards from base_date
|
|
# Each post is 2 days earlier than the previous one
|
|
new_date = base_date - timedelta(days=i * 2)
|
|
post.published_at = new_date
|
|
updated += 1
|
|
|
|
db.commit()
|
|
print(f"Successfully updated {updated} blog posts with past published_at dates")
|
|
|
|
except Exception as e:
|
|
db.rollback()
|
|
print(f"Error fixing blog dates: {str(e)}")
|
|
raise
|
|
finally:
|
|
db.close()
|
|
|
|
if __name__ == "__main__":
|
|
print("Fixing blog post published_at dates...")
|
|
fix_blog_dates()
|
|
print("Done!")
|
|
|