31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
# Generated manually for the campaign-delivery concurrency fix.
|
|
#
|
|
# اضافهکردنِ یک partial/conditional unique index روی
|
|
# CampaignDelivery(campaign, user_id, channel) که فقط رکوردهایی با
|
|
# status در ('pending', 'sent') رو محدود میکنه. رکوردهای failed از
|
|
# این constraint مستثنا هستن تا رفتارِ retryِ فعلی (ساختنِ رکوردِ
|
|
# pendingِ جدید بعد از یک تلاشِ ناموفق) بدونِ تغییر بمونه.
|
|
#
|
|
# این migration فقط یک constraint اضافه میکنه؛ هیچ فیلد/مدلِ جدیدی
|
|
# نمیسازه و به دیتای موجود دست نمیزنه.
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('campaigns', '0002_campaigndelivery'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AddConstraint(
|
|
model_name='campaigndelivery',
|
|
constraint=models.UniqueConstraint(
|
|
condition=models.Q(status__in=['pending', 'sent']),
|
|
fields=('campaign', 'user_id', 'channel'),
|
|
name='campaigns_one_active_delivery_per_user_channel',
|
|
),
|
|
),
|
|
]
|