dy-dashboard/check_db.py
2026-10-28 11:14:17 +08:00

56 lines
1.9 KiB
Python

"""Comprehensive DB and code check for cascade delete"""
import sys, json, os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
os.chdir(os.path.dirname(os.path.abspath(__file__)))
# Check services/db.py for query function
with open('services/db.py') as f:
db_code = f.read()
print("=== query function ===")
idx = db_code.find('def query')
if idx > 0:
print(db_code[idx:idx+500])
# Check the product delete route in routes/products.py
with open('routes/products.py') as f:
prods_code = f.read()
idx = prods_code.find('def product_delete')
if idx > 0:
end = prods_code.find('\n@', idx)
if end == -1:
end = len(prods_code)
print("\n=== product_delete route ===")
print(prods_code[idx:end])
else:
idx = prods_code.find('def product_delete')
print(f"product_delete function at {idx}")
# Check for SQL in routes/planning.py
with open('routes/planning.py') as f:
plan_code = f.read()
# Find table references
for line in plan_code.split('\n'):
if 'product_code' in line.lower() and ('SELECT' in line or 'FROM' in line or 'WHERE' in line or 'INSERT' in line or 'DELETE' in line or 'UPDATE' in line or 'query(' in line):
print(f"\nplanning SQL: {line.strip()[:200]}")
# Check for bom file
try:
with open('routes/bom.py') as f:
bom_code = f.read()
for line in bom_code.split('\n'):
if 'product_code' in line.lower() and ('SELECT' in line or 'FROM' in line or 'WHERE' in line or 'INSERT' in line or 'DELETE' in line or 'UPDATE' in line or 'query(' in line):
print(f"\nbom SQL: {line.strip()[:200]}")
except:
print("\nbom.py: not found")
# Also check for BOM routes in app.js
with open('static/js/app.js') as f:
app_js = f.read()
# Find BOM API calls
for line in app_js.split('\n'):
if '/api/bom' in line.lower() or '/api/product/bom' in line.lower():
print(f"\nJS BOM API: {line.strip()[:200]}")