diff --git a/backend/instance/cookie_monitor.db b/backend/instance/cookie_monitor.db index b1892c8..e232d41 100644 Binary files a/backend/instance/cookie_monitor.db and b/backend/instance/cookie_monitor.db differ diff --git a/backend/models/database.py b/backend/models/database.py index 1e600a3..22ea1b7 100644 --- a/backend/models/database.py +++ b/backend/models/database.py @@ -2,7 +2,7 @@ 数据库模型定义 """ from flask_sqlalchemy import SQLAlchemy -from datetime import datetime +from datetime import datetime, timezone db = SQLAlchemy() @@ -18,8 +18,8 @@ class User(db.Model): cookie_cloud_uuid = db.Column(db.String(255)) cookie_cloud_password = db.Column(db.String(255)) cookie_cloud_api_url = db.Column(db.String(255)) - created_at = db.Column(db.DateTime, default=datetime.utcnow) - updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + created_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)) + updated_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) # 关联关系 websites = db.relationship('Website', backref='user', lazy=True, cascade='all, delete-orphan') @@ -38,8 +38,8 @@ class Website(db.Model): success_text = db.Column(db.String(255)) interval_minutes = db.Column(db.Integer, default=30, name='interval') status = db.Column(db.Integer, default=1) - created_at = db.Column(db.DateTime, default=datetime.utcnow) - updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + created_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)) + updated_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) # 关联关系 cookies = db.relationship('Cookie', backref='website', lazy=True, cascade='all, delete-orphan') @@ -60,8 +60,8 @@ class Cookie(db.Model): expiry = db.Column(db.DateTime) secure = db.Column(db.Integer, default=0) http_only = db.Column(db.Integer, default=0) - created_at = db.Column(db.DateTime, default=datetime.utcnow) - updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + created_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)) + updated_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) class Detection(db.Model): @@ -74,7 +74,7 @@ class Detection(db.Model): response_time = db.Column(db.Float) http_status = db.Column(db.Integer) message = db.Column(db.Text) - created_at = db.Column(db.DateTime, default=datetime.utcnow) + created_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)) class Notification(db.Model): @@ -88,5 +88,5 @@ class Notification(db.Model): content = db.Column(db.Text, nullable=False) status = db.Column(db.String(20), default='pending') send_time = db.Column(db.DateTime) - created_at = db.Column(db.DateTime, default=datetime.utcnow) - updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) + created_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)) + updated_at = db.Column(db.DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc))