mirror of
https://github.com/zulip/zulip.git
synced 2025-10-24 00:23:49 +00:00
Replaced unique_together with UniqueConstraint in models that covered nullable fields as in unique_together database indexes don't work where subgroup=None. So added conditional unique index handling invalid duplicate Count data. Added 0015_clear_duplicate_counts migration to handle existing data that violates the constraints. Also corrected a test case in test_counts.py which didn't clear its state properly and thus was accidentally taking advantage of this database schema bug.
62 lines
2.7 KiB
Python
62 lines
2.7 KiB
Python
# Generated by Django 2.2.10 on 2020-02-29 19:40
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('analytics', '0015_clear_duplicate_counts'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AlterUniqueTogether(
|
|
name='installationcount',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='realmcount',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='streamcount',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='usercount',
|
|
unique_together=set(),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='installationcount',
|
|
constraint=models.UniqueConstraint(condition=models.Q(subgroup__isnull=False), fields=('property', 'subgroup', 'end_time'), name='unique_installation_count'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='installationcount',
|
|
constraint=models.UniqueConstraint(condition=models.Q(subgroup__isnull=True), fields=('property', 'end_time'), name='unique_installation_count_null_subgroup'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='realmcount',
|
|
constraint=models.UniqueConstraint(condition=models.Q(subgroup__isnull=False), fields=('realm', 'property', 'subgroup', 'end_time'), name='unique_realm_count'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='realmcount',
|
|
constraint=models.UniqueConstraint(condition=models.Q(subgroup__isnull=True), fields=('realm', 'property', 'end_time'), name='unique_realm_count_null_subgroup'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='streamcount',
|
|
constraint=models.UniqueConstraint(condition=models.Q(subgroup__isnull=False), fields=('stream', 'property', 'subgroup', 'end_time'), name='unique_stream_count'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='streamcount',
|
|
constraint=models.UniqueConstraint(condition=models.Q(subgroup__isnull=True), fields=('stream', 'property', 'end_time'), name='unique_stream_count_null_subgroup'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='usercount',
|
|
constraint=models.UniqueConstraint(condition=models.Q(subgroup__isnull=False), fields=('user', 'property', 'subgroup', 'end_time'), name='unique_user_count'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='usercount',
|
|
constraint=models.UniqueConstraint(condition=models.Q(subgroup__isnull=True), fields=('user', 'property', 'end_time'), name='unique_user_count_null_subgroup'),
|
|
),
|
|
]
|