Fix migration error

This commit is contained in:
2025-08-29 09:11:20 +09:00
parent a180c1e258
commit b91b522fa3
26 changed files with 5848 additions and 22 deletions

150
analyze_event_data_raw.py Normal file
View File

@ -0,0 +1,150 @@
#!/usr/bin/env python3
import os
import sys
import django
# プロジェクト設定
sys.path.append('/app')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
from django.db import connection
import logging
# ログ設定
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def analyze_event_data_raw():
"""生のSQLを使ってイベント・チーム・エントリーデータを分析"""
print("=== 生SQLによるイベント・データ分析 ===")
with connection.cursor() as cursor:
# 1. NewEvent2テーブルの構造確認
print("\n1. rog_newevent2テーブル構造:")
cursor.execute("""
SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_name = 'rog_newevent2'
ORDER BY ordinal_position;
""")
columns = cursor.fetchall()
for col in columns:
print(f" - {col[0]}: {col[1]} ({'NULL' if col[2] == 'YES' else 'NOT NULL'})")
# 2. 全イベント一覧
print("\n2. 全イベント一覧:")
cursor.execute("""
SELECT id, event_name, event_day, venue_address
FROM rog_newevent2
ORDER BY id;
""")
events = cursor.fetchall()
for event in events:
print(f" - ID:{event[0]}, Name:{event[1]}, Date:{event[2]}, Venue:{event[3]}")
# 各イベントのエントリー数とチーム数
cursor.execute("SELECT COUNT(*) FROM rog_entry WHERE event_id = %s", [event[0]])
entry_count = cursor.fetchone()[0]
cursor.execute("SELECT COUNT(*) FROM rog_team WHERE event_id = %s", [event[0]])
team_count = cursor.fetchone()[0]
print(f" Entry:{entry_count}, Team:{team_count}")
# 3. FC岐阜関連イベント検索
print("\n3. FC岐阜関連イベント検索:")
cursor.execute("""
SELECT id, event_name, event_day, venue_address
FROM rog_newevent2
WHERE event_name ILIKE %s OR event_name ILIKE %s OR event_name ILIKE %s
ORDER BY id;
""", ['%FC岐阜%', '%fc岐阜%', '%岐阜%'])
fc_events = cursor.fetchall()
if fc_events:
for event in fc_events:
print(f" - ID:{event[0]}, Name:{event[1]}, Date:{event[2]}")
# 関連エントリー
cursor.execute("""
SELECT e.id, t.id as team_id, t.name as team_name, t.zekken_number
FROM rog_entry e
JOIN rog_team t ON e.team_id = t.id
WHERE e.event_id = %s
LIMIT 10;
""", [event[0]])
entries = cursor.fetchall()
if entries:
print(" エントリー詳細:")
for entry in entries:
print(f" Entry ID:{entry[0]}, Team ID:{entry[1]}, Team:{entry[2]}, Zekken:{entry[3]}")
# 関連チーム(ゼッケン番号付き)
cursor.execute("""
SELECT id, name, zekken_number
FROM rog_team
WHERE event_id = %s AND zekken_number IS NOT NULL AND zekken_number != ''
LIMIT 10;
""", [event[0]])
teams_with_zekken = cursor.fetchall()
if teams_with_zekken:
print(" ゼッケン番号付きチーム:")
for team in teams_with_zekken:
print(f" Team ID:{team[0]}, Name:{team[1]}, Zekken:{team[2]}")
else:
print(" ゼッケン番号付きチームが見つかりません")
else:
print(" FC岐阜関連イベントが見つかりません")
# 4. 全体のゼッケン番号付きチーム確認
print("\n4. 全体のゼッケン番号付きチーム状況:")
cursor.execute("""
SELECT COUNT(*)
FROM rog_team
WHERE zekken_number IS NOT NULL AND zekken_number != '';
""")
zekken_team_count = cursor.fetchone()[0]
print(f" ゼッケン番号付きチーム総数: {zekken_team_count}")
if zekken_team_count > 0:
cursor.execute("""
SELECT t.id, t.name, t.zekken_number, e.event_name
FROM rog_team t
LEFT JOIN rog_newevent2 e ON t.event_id = e.id
WHERE t.zekken_number IS NOT NULL AND t.zekken_number != ''
LIMIT 10;
""")
sample_teams = cursor.fetchall()
print(" サンプル:")
for team in sample_teams:
print(f" ID:{team[0]}, Name:{team[1]}, Zekken:{team[2]}, Event:{team[3]}")
# 5. 通過審査管理画面で使われる可能性のあるクエリの確認
print("\n5. 通過審査管理用データ確認:")
cursor.execute("""
SELECT e.id as event_id, e.event_name, COUNT(t.id) as team_count,
COUNT(CASE WHEN t.zekken_number IS NOT NULL AND t.zekken_number != '' THEN 1 END) as zekken_teams
FROM rog_newevent2 e
LEFT JOIN rog_team t ON e.id = t.event_id
GROUP BY e.id, e.event_name
ORDER BY e.id;
""")
event_stats = cursor.fetchall()
print(" イベント別チーム・ゼッケン統計:")
for stat in event_stats:
print(f" イベントID:{stat[0]}, Name:{stat[1]}, 総チーム:{stat[2]}, ゼッケン付き:{stat[3]}")
if __name__ == "__main__":
try:
analyze_event_data_raw()
except Exception as e:
print(f"❌ エラーが発生しました: {e}")
import traceback
traceback.print_exc()