42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
"""Debug: check if ticket's category_id maps to a valid category and what tenant it belongs to"""
|
|
import asyncio
|
|
import os
|
|
import sys
|
|
|
|
sys.path.insert(0, '/app')
|
|
os.chdir('/app')
|
|
|
|
from sqlalchemy.ext.asyncio import create_async_engine
|
|
from sqlalchemy import text
|
|
|
|
|
|
async def run():
|
|
database_url = os.environ.get('DATABASE_URL', 'postgresql+asyncpg://postgres:postgres@db:5432/servicemanager')
|
|
engine = create_async_engine(database_url)
|
|
|
|
async with engine.connect() as c:
|
|
# Check tickets and their category names via direct JOIN
|
|
r = await c.execute(text("""
|
|
SELECT t.ticket_number, t.category_id,
|
|
cat.name as category_name, cat.tenant_id as cat_tenant,
|
|
t.tenant_id as ticket_tenant
|
|
FROM tickets t
|
|
LEFT JOIN ticket_categories cat ON cat.id = t.category_id
|
|
WHERE t.category_id IS NOT NULL
|
|
LIMIT 10
|
|
"""))
|
|
print("=== TICKET -> CATEGORY JOIN ===")
|
|
for row in r.fetchall():
|
|
match = "✓ SAME TENANT" if row[3] == row[4] else "✗ DIFFERENT TENANT"
|
|
print(f" {row[0]}: cat_id={str(row[1])[:8]}, cat_name={row[2]}, {match}")
|
|
|
|
# Check what tenant aduanasoft-demo is
|
|
r2 = await c.execute(text("SELECT id, slug FROM tenants WHERE slug='aduanasoft-demo'"))
|
|
tenant = r2.fetchone()
|
|
print(f"\nTenant aduanasoft-demo: {tenant[0] if tenant else 'NOT FOUND'}")
|
|
|
|
await engine.dispose()
|
|
|
|
|
|
asyncio.run(run())
|