84 lines
3.0 KiB
Python
84 lines
3.0 KiB
Python
#!/usr/bin/env python
|
|
"""
|
|
チーム・エントリーデータ完全リセット&再移行スクリプト
|
|
既存のTeam/Entryデータをクリアして、old_rogdbから完全に移行し直す
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import django
|
|
|
|
if __name__ == '__main__':
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
|
|
django.setup()
|
|
|
|
from rog.models import Team, Entry, Member
|
|
from django.db import transaction
|
|
import subprocess
|
|
|
|
print("=== チーム・エントリーデータ完全リセット&再移行 ===")
|
|
|
|
try:
|
|
with transaction.atomic():
|
|
print("1. 既存データをクリア中...")
|
|
|
|
# 関連データを順番にクリア
|
|
entry_count = Entry.objects.count()
|
|
member_count = Member.objects.count()
|
|
team_count = Team.objects.count()
|
|
|
|
print(f" 削除対象: Entry({entry_count}件), Member({member_count}件), Team({team_count}件)")
|
|
|
|
Entry.objects.all().delete()
|
|
Member.objects.all().delete()
|
|
Team.objects.all().delete()
|
|
|
|
print(" ✅ 既存データクリア完了")
|
|
|
|
print("\\n2. チームデータ移行を実行中...")
|
|
result = subprocess.run([
|
|
'python', 'migrate_rog_team_enhanced.py'
|
|
], capture_output=True, text=True)
|
|
|
|
if result.returncode == 0:
|
|
print(" ✅ チーム移行完了")
|
|
else:
|
|
print(f" ❌ チーム移行エラー: {result.stderr}")
|
|
|
|
print("\\n3. エントリーデータ移行を実行中...")
|
|
result = subprocess.run([
|
|
'python', 'migrate_rog_entry_enhanced.py'
|
|
], capture_output=True, text=True)
|
|
|
|
if result.returncode == 0:
|
|
print(" ✅ エントリー移行完了")
|
|
else:
|
|
print(f" ❌ エントリー移行エラー: {result.stderr}")
|
|
|
|
print("\\n4. 移行結果確認...")
|
|
from rog.models import NewEvent2
|
|
|
|
team_count = Team.objects.count()
|
|
entry_count = Entry.objects.count()
|
|
|
|
print(f" Team: {team_count}件")
|
|
print(f" Entry: {entry_count}件")
|
|
|
|
# FC岐阜イベントのエントリー確認
|
|
fc_event = NewEvent2.objects.filter(event_name__icontains='FC岐阜').first()
|
|
if fc_event:
|
|
fc_entries = Entry.objects.filter(event=fc_event)
|
|
print(f" FC岐阜イベントエントリー: {fc_entries.count()}件")
|
|
|
|
if fc_entries.exists():
|
|
print(" ✅ ゼッケン番号表示問題が解決されました!")
|
|
for entry in fc_entries[:3]:
|
|
print(f" ゼッケン{entry.zekken_number}: {entry.team.team_name}")
|
|
else:
|
|
print(" ⚠️ FC岐阜にエントリーがありません")
|
|
|
|
except Exception as e:
|
|
print(f"❌ エラーが発生しました: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|