- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
43
scripts/archive/debug_query.py
Normal file
43
scripts/archive/debug_query.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from app import app, MonthlySummaryAnalysis
|
||||
from database.manager import DatabaseManager
|
||||
from sqlalchemy import func, case, desc
|
||||
|
||||
# Mocking the filter logic since it's an inner function
|
||||
def apply_filters_debug(q, year=None, month=None, ignore_year=False):
|
||||
print(f"Applying filters: year={year}, ignore_year={ignore_year}")
|
||||
if year and not ignore_year:
|
||||
print(" -> Filtering by year")
|
||||
q = q.filter(MonthlySummaryAnalysis.year == year)
|
||||
if month:
|
||||
q = q.filter(MonthlySummaryAnalysis.month == month)
|
||||
return q
|
||||
|
||||
db_manager = DatabaseManager()
|
||||
session = db_manager.get_session()
|
||||
year = 2025
|
||||
month = None # Simulating the curl request
|
||||
|
||||
print("--- Debugging Div Dist Query ---")
|
||||
div_dist_q = session.query(
|
||||
MonthlySummaryAnalysis.division,
|
||||
func.sum(MonthlySummaryAnalysis.sales_amt_curr).label('sales'),
|
||||
func.sum(case((MonthlySummaryAnalysis.year == 2024, MonthlySummaryAnalysis.sales_amt_curr), else_=0)).label('sales_2024'),
|
||||
func.sum(case((MonthlySummaryAnalysis.year == 2025, MonthlySummaryAnalysis.sales_amt_curr), else_=0)).label('sales_2025')
|
||||
).group_by(MonthlySummaryAnalysis.division).order_by(desc('sales')).limit(12)
|
||||
|
||||
div_dist_q = apply_filters_debug(div_dist_q, year=year, ignore_year=True)
|
||||
|
||||
print("SQL:", div_dist_q.statement.compile(compile_kwargs={"literal_binds": True}))
|
||||
results = div_dist_q.all()
|
||||
print(f"Results Count: {len(results)}")
|
||||
if results:
|
||||
print("First result:", results[0])
|
||||
|
||||
print("\n--- Debugging Regular Filter (Comparison) ---")
|
||||
# What happens if we DO filter by year?
|
||||
div_dist_q_filtered = session.query(
|
||||
MonthlySummaryAnalysis.division,
|
||||
func.sum(MonthlySummaryAnalysis.sales_amt_curr).label('sales')
|
||||
).group_by(MonthlySummaryAnalysis.division).order_by(desc('sales')).limit(12)
|
||||
div_dist_q_filtered = apply_filters_debug(div_dist_q_filtered, year=year, ignore_year=False)
|
||||
print(f"Filtered Results Count: {len(div_dist_q_filtered.all())}")
|
||||
Reference in New Issue
Block a user