36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from django.db import migrations
|
|
from django.db.models import F, Q
|
|
|
|
|
|
def backfill_player_origins(apps, schema_editor):
|
|
Player = apps.get_model("players", "Player")
|
|
PlayerCareerEntry = apps.get_model("players", "PlayerCareerEntry")
|
|
|
|
for player in Player.objects.all().iterator():
|
|
entry = (
|
|
PlayerCareerEntry.objects.filter(player=player)
|
|
.filter(Q(competition__isnull=False) | Q(team__isnull=False))
|
|
.order_by(
|
|
F("start_date").asc(nulls_last=True),
|
|
F("season__start_date").asc(nulls_last=True),
|
|
"id",
|
|
)
|
|
.first()
|
|
)
|
|
if entry is None:
|
|
continue
|
|
|
|
player.origin_competition_id = entry.competition_id
|
|
player.origin_team_id = entry.team_id
|
|
player.save(update_fields=["origin_competition", "origin_team"])
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
("players", "0003_player_origin_competition_player_origin_team_and_more"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(backfill_player_origins, migrations.RunPython.noop),
|
|
]
|