Coverage for ivatar/ivataraccount/migrations/0023_generated_digest_final.py: 100%
6 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-21 11:51 +0000
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-21 11:51 +0000
1# Generated by Django 6.0.5 on 2026-06-02 13:45
3import django.db.models.functions.text
4from django.conf import settings
5from django.db import migrations, models
8class Migration(migrations.Migration):
10 dependencies = [
11 ('ivataraccount', '0022_pgcrypto_extension'),
12 migrations.swappable_dependency(settings.AUTH_USER_MODEL),
13 ]
15 operations = [
16 # 0021 created indexes via raw SQL, so Django doesn't know about them.
17 # We must drop them via raw SQL to satisfy SQLite/Postgres.
18 migrations.RunSQL(
19 "DROP INDEX IF EXISTS idx_cemail_digest;",
20 reverse_sql=migrations.RunSQL.noop,
21 ),
22 migrations.RunSQL(
23 "DROP INDEX IF EXISTS idx_cemail_digest_sha256;",
24 reverse_sql=migrations.RunSQL.noop,
25 ),
27 # Now remove the fields
28 migrations.RemoveField(
29 model_name='confirmedemail',
30 name='digest',
31 ),
32 migrations.RemoveField(
33 model_name='confirmedemail',
34 name='digest_sha256',
35 ),
36 # Add them back as GeneratedFields
37 migrations.AddField(
38 model_name='confirmedemail',
39 name='digest',
40 field=models.GeneratedField(
41 db_persist=True,
42 expression=django.db.models.functions.text.MD5(django.db.models.functions.text.Lower(django.db.models.functions.text.Trim('email'))),
43 output_field=models.CharField(max_length=32)
44 ),
45 ),
46 migrations.AddField(
47 model_name='confirmedemail',
48 name='digest_sha256',
49 field=models.GeneratedField(
50 db_persist=True,
51 expression=django.db.models.functions.text.SHA256(django.db.models.functions.text.Lower(django.db.models.functions.text.Trim('email'))),
52 output_field=models.CharField(max_length=64)
53 ),
54 ),
55 # Re-add the indexes using Django's AddIndex so it manages them from now on
56 # Ensure any pre-existing index is dropped right before AddIndex executes
57 migrations.RunSQL(
58 "DROP INDEX IF EXISTS idx_cemail_digest;",
59 reverse_sql=migrations.RunSQL.noop,
60 ),
61 migrations.AddIndex(
62 model_name='confirmedemail',
63 index=models.Index(fields=['digest'], name='idx_cemail_digest'),
64 ),
65 migrations.RunSQL(
66 "DROP INDEX IF EXISTS idx_cemail_digest_sha256;",
67 reverse_sql=migrations.RunSQL.noop,
68 ),
69 migrations.AddIndex(
70 model_name='confirmedemail',
71 index=models.Index(fields=['digest_sha256'], name='idx_cemail_digest_sha256'),
72 ),
73 ]