refactor: unify 4 isolated SQLAlchemy Base instances to database.models.Base
- database/import_models.py: 移除 ext.declarative.declarative_base,改用 from database.models import Base - database/notification_models.py: 同上 - database/ppt_reports.py: 移除 orm.declarative_base,改用共用 Base - database/vendor_models.py: 同上 - database/manager.py: 加入 4 個模型的 noqa import,確保 Base.metadata 完整管理所有資料表 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
"""
|
||||
|
||||
from sqlalchemy import Column, Integer, String, DateTime, Text, Float
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from database.models import Base
|
||||
from datetime import datetime
|
||||
import pytz
|
||||
|
||||
@@ -18,9 +18,6 @@ def taipei_now():
|
||||
return datetime.now(TAIPEI_TZ).replace(tzinfo=None)
|
||||
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
|
||||
class ImportJob(Base):
|
||||
"""匯入任務模型"""
|
||||
__tablename__ = 'import_jobs'
|
||||
|
||||
@@ -9,6 +9,10 @@ from .edm_models import PromoProduct # V-Fix: 確保 EDM 模型被註冊,以
|
||||
from .trend_models import TrendRecord, TrendKeyword, TrendAnalysis, WebSearchCache, TelegramUser # noqa: F401 - 趨勢資料表
|
||||
from .ai_models import AgentContext, ActionPlan, ActionOutcome, AgentStrategyWeights # noqa: F401 - AI agent 模型
|
||||
from .autoheal_models import Incident, Playbook, HealLog # noqa: F401 - ADR-013 AIOps 自動修復表
|
||||
from .import_models import ImportJob # noqa: F401 - 確保 import_jobs 表被 Base.metadata 管理
|
||||
from .notification_models import NotificationTemplate # noqa: F401 - 確保 notification_templates 表被 Base.metadata 管理
|
||||
from .ppt_reports import PPTReport # noqa: F401 - 確保 ppt_reports 表被 Base.metadata 管理
|
||||
from .vendor_models import VendorStockout # noqa: F401 - 確保 vendor_stockout 表被 Base.metadata 管理
|
||||
|
||||
# 🚩 導入優化後的日誌管理模組
|
||||
from services.logger_manager import SystemLogger
|
||||
|
||||
@@ -6,10 +6,9 @@
|
||||
"""
|
||||
|
||||
from sqlalchemy import Column, Integer, String, Text, Boolean, DateTime
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from database.models import Base
|
||||
from datetime import datetime, timezone, timedelta
|
||||
|
||||
Base = declarative_base()
|
||||
TAIPEI_TZ = timezone(timedelta(hours=8))
|
||||
|
||||
|
||||
|
||||
@@ -4,11 +4,9 @@ PPT 簡報資料庫持久化模型
|
||||
"""
|
||||
|
||||
from sqlalchemy import Column, Integer, String, DateTime, Text, Float
|
||||
from sqlalchemy.orm import declarative_base
|
||||
from database.models import Base
|
||||
from datetime import datetime
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
class PPTReport(Base):
|
||||
"""PPT 簡報記錄表"""
|
||||
__tablename__ = 'ppt_reports'
|
||||
|
||||
@@ -6,11 +6,10 @@
|
||||
"""
|
||||
|
||||
from sqlalchemy import Column, Integer, String, DateTime, Boolean, ForeignKey, Numeric, Date, Text
|
||||
from sqlalchemy.orm import relationship, declarative_base
|
||||
from sqlalchemy.orm import relationship
|
||||
from database.models import Base
|
||||
from datetime import datetime
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
class VendorStockout(Base):
|
||||
"""廠商缺貨表 - 儲存匯入的缺貨資料"""
|
||||
__tablename__ = 'vendor_stockout'
|
||||
|
||||
Reference in New Issue
Block a user