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

1# Generated by Django 6.0.5 on 2026-06-02 13:45 

2 

3import django.db.models.functions.text 

4from django.conf import settings 

5from django.db import migrations, models 

6 

7 

8class Migration(migrations.Migration): 

9 

10 dependencies = [ 

11 ('ivataraccount', '0022_pgcrypto_extension'), 

12 migrations.swappable_dependency(settings.AUTH_USER_MODEL), 

13 ] 

14 

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 ), 

26 

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 ] 

74