Fix migration error
This commit is contained in:
125
analyze_fc_gifu_data.py
Normal file
125
analyze_fc_gifu_data.py
Normal file
@ -0,0 +1,125 @@
|
||||
#!/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 rog.models import Entry, Team, NewEvent2, Member
|
||||
from django.db.models import Q
|
||||
import logging
|
||||
|
||||
# ログ設定
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def analyze_fc_gifu_data():
|
||||
"""FC岐阜関連のイベント・チーム・エントリーデータを詳細分析"""
|
||||
|
||||
print("=== FC岐阜イベント・データ詳細分析 ===")
|
||||
|
||||
# 1. FC岐阜関連イベントを検索
|
||||
print("\n1. FC岐阜関連イベント検索:")
|
||||
fc_events = NewEvent2.objects.filter(
|
||||
Q(event_name__icontains='FC岐阜') |
|
||||
Q(event_name__icontains='fc岐阜') |
|
||||
Q(event_name__icontains='岐阜')
|
||||
)
|
||||
|
||||
if fc_events.exists():
|
||||
for event in fc_events:
|
||||
print(f" - ID:{event.id}, Name:{event.event_name}, Date:{event.event_day}")
|
||||
|
||||
# イベントに関連するエントリーを確認
|
||||
entries = Entry.objects.filter(event=event)
|
||||
print(f" 関連エントリー数: {entries.count()}")
|
||||
|
||||
# エントリーのチーム情報を表示
|
||||
if entries.exists():
|
||||
print(" エントリー詳細:")
|
||||
for entry in entries[:10]: # 最初の10件のみ表示
|
||||
team = entry.team
|
||||
print(f" Entry ID:{entry.id}, Team ID:{team.id}, Team Name:{team.name}, Zekken:{team.zekken_number}")
|
||||
|
||||
# イベントに関連するチームを直接検索
|
||||
teams = Team.objects.filter(event=event)
|
||||
print(f" 関連チーム数: {teams.count()}")
|
||||
|
||||
if teams.exists():
|
||||
print(" チーム詳細:")
|
||||
for team in teams[:10]: # 最初の10件のみ表示
|
||||
print(f" Team ID:{team.id}, Name:{team.name}, Zekken:{team.zekken_number}")
|
||||
else:
|
||||
print(" FC岐阜関連イベントが見つかりません")
|
||||
|
||||
# 2. 全イベント一覧を確認
|
||||
print("\n2. 全イベント一覧:")
|
||||
all_events = NewEvent2.objects.all()
|
||||
for event in all_events:
|
||||
entry_count = Entry.objects.filter(event=event).count()
|
||||
team_count = Team.objects.filter(event=event).count()
|
||||
print(f" - ID:{event.id}, Name:{event.event_name}, Date:{event.event_day}, Entry:{entry_count}, Team:{team_count}")
|
||||
|
||||
# 3. ゼッケン番号が設定されているチームを確認
|
||||
print("\n3. ゼッケン番号付きチーム:")
|
||||
teams_with_zekken = Team.objects.exclude(zekken_number__isnull=True).exclude(zekken_number='')
|
||||
print(f" ゼッケン番号付きチーム数: {teams_with_zekken.count()}")
|
||||
|
||||
if teams_with_zekken.exists():
|
||||
print(" サンプル:")
|
||||
for team in teams_with_zekken[:10]:
|
||||
print(f" ID:{team.id}, Name:{team.name}, Zekken:{team.zekken_number}, Event:{team.event.event_name if team.event else 'None'}")
|
||||
|
||||
# 4. 特定のイベントID(仮に100とする)を詳細調査
|
||||
print("\n4. イベントID 100 詳細調査:")
|
||||
try:
|
||||
event_100 = NewEvent2.objects.get(id=100)
|
||||
print(f" イベント: {event_100.event_name} ({event_100.event_day})")
|
||||
|
||||
# エントリー確認
|
||||
entries_100 = Entry.objects.filter(event=event_100)
|
||||
print(f" エントリー数: {entries_100.count()}")
|
||||
|
||||
# チーム確認
|
||||
teams_100 = Team.objects.filter(event=event_100)
|
||||
print(f" チーム数: {teams_100.count()}")
|
||||
|
||||
# ゼッケン番号付きチーム確認
|
||||
teams_100_with_zekken = teams_100.exclude(zekken_number__isnull=True).exclude(zekken_number='')
|
||||
print(f" ゼッケン番号付きチーム数: {teams_100_with_zekken.count()}")
|
||||
|
||||
if teams_100_with_zekken.exists():
|
||||
print(" ゼッケン番号付きチーム:")
|
||||
for team in teams_100_with_zekken:
|
||||
print(f" ID:{team.id}, Name:{team.name}, Zekken:{team.zekken_number}")
|
||||
|
||||
except NewEvent2.DoesNotExist:
|
||||
print(" イベントID 100は存在しません")
|
||||
|
||||
# 5. Entryテーブルとチームの関係確認
|
||||
print("\n5. Entry-Team関係確認:")
|
||||
total_entries = Entry.objects.all().count()
|
||||
entries_with_teams = Entry.objects.exclude(team__isnull=True).count()
|
||||
print(f" 総エントリー数: {total_entries}")
|
||||
print(f" チーム関連付けありエントリー数: {entries_with_teams}")
|
||||
|
||||
# サンプルエントリーの詳細
|
||||
print(" サンプルエントリー詳細:")
|
||||
sample_entries = Entry.objects.all()[:5]
|
||||
for entry in sample_entries:
|
||||
team = entry.team
|
||||
event = entry.event
|
||||
print(f" Entry ID:{entry.id}, Team:{team.name if team else 'None'}({team.id if team else 'None'}), Event:{event.event_name if event else 'None'}({event.id if event else 'None'})")
|
||||
if team:
|
||||
print(f" Team Zekken:{team.zekken_number}, Team Event:{team.event.event_name if team.event else 'None'}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
analyze_fc_gifu_data()
|
||||
except Exception as e:
|
||||
print(f"❌ エラーが発生しました: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
Reference in New Issue
Block a user