uchill/backend/apps/referrals/migrations/0003_backfill_invited_email...

32 lines
1.0 KiB
Python

# Data migration: fill ReferralInvitedEmail from existing UserReferralProfile (referred_by is not null)
from django.db import migrations
def backfill_invited_emails(apps, schema_editor):
UserReferralProfile = apps.get_model('referrals', 'UserReferralProfile')
ReferralInvitedEmail = apps.get_model('referrals', 'ReferralInvitedEmail')
for profile in UserReferralProfile.objects.filter(referred_by__isnull=False).select_related('user', 'referred_by'):
email_lower = profile.user.email.lower().strip()
if not ReferralInvitedEmail.objects.filter(email=email_lower).exists():
ReferralInvitedEmail.objects.create(
email=email_lower,
referrer=profile.referred_by,
referred_user=profile.user,
)
def noop(apps, schema_editor):
pass
class Migration(migrations.Migration):
dependencies = [
('referrals', '0002_add_referral_antifraud_models'),
]
operations = [
migrations.RunPython(backfill_invited_emails, noop),
]