Module apps.email_scheduler.migrations.0001_initial
Expand source code
# Generated by Django 3.1.5 on 2022-10-07 08:00
import django.contrib.postgres.fields
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
"""
This migration will create the EmailScheduler model
"""
initial = True
dependencies = []
"""
operations list containing different Migration Model
"""
operations = [
migrations.CreateModel(
name='EmailScheduler',
fields=[
('id',
models.AutoField(auto_created=True,
primary_key=True,
serialize=False,
verbose_name='ID')),
('email_to', models.EmailField(max_length=254)),
('email_cc',
django.contrib.postgres.fields.ArrayField(
base_field=models.EmailField(max_length=254),
blank=True,
default=list,
help_text='list of comma separated email address in Cc',
size=None)),
('email_bcc',
django.contrib.postgres.fields.ArrayField(
base_field=models.EmailField(max_length=254),
blank=True,
default=list,
help_text='list of comma separated email address in Bcc',
size=None)),
('email_subject', models.CharField(max_length=256)),
('email_body', models.TextField()),
('email_schedule',
models.DateTimeField(blank=True,
help_text='Schedule time to send email',
null=True)),
('email_repeat_after',
models.DurationField(
blank=True,
help_text=
'Duration after which to resend email, You can remove it in future to stop the campaign and mark the task COMPLETE',
null=True)),
('email_service',
models.CharField(choices=[('mailjet', 'Mailjet')],
default='mailjet',
max_length=32)),
('email_last_sent_at',
models.DateTimeField(blank=True, null=True)),
('task_status',
models.CharField(
choices=[('pending', 'Pending'), ('complete', 'Complete'),
('failed', 'Failed')],
default='pending',
help_text='Status of this email sending task',
max_length=128)),
('email_send_count',
models.IntegerField(
default=0,
help_text='Count of emails sent successfully')),
('task_failed_count',
models.IntegerField(
default=0,
help_text='Count of number of times this task failed')),
('task_failure_info',
django.contrib.postgres.fields.ArrayField(
base_field=models.JSONField(),
blank=True,
help_text=
'If task failed, information regarding why it failed',
null=True,
size=None)),
],
),
migrations.CreateModel(
name='EmailSchedulerLogs',
fields=[
('id',
models.AutoField(auto_created=True,
primary_key=True,
serialize=False,
verbose_name='ID')),
('email_recipient_id', models.EmailField(max_length=254)),
('email_message_id', models.TextField(blank=True, null=True)),
('email_send_status',
models.CharField(blank=True, max_length=128, null=True)),
('email_recipient_type',
models.CharField(choices=[('to', 'To'), ('cc', 'Cc'),
('bcc', 'Bcc')],
max_length=8)),
('retry_count',
models.IntegerField(
default=0,
help_text='Number of times this email is being retried')),
('email_event_info', models.JSONField(blank=True, null=True)),
('email_scheduler',
models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
to='email_scheduler.emailscheduler')),
],
),
]
Classes
class Migration (name, app_label)-
This migration will create the EmailScheduler model
Expand source code
class Migration(migrations.Migration): """ This migration will create the EmailScheduler model """ initial = True dependencies = [] """ operations list containing different Migration Model """ operations = [ migrations.CreateModel( name='EmailScheduler', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('email_to', models.EmailField(max_length=254)), ('email_cc', django.contrib.postgres.fields.ArrayField( base_field=models.EmailField(max_length=254), blank=True, default=list, help_text='list of comma separated email address in Cc', size=None)), ('email_bcc', django.contrib.postgres.fields.ArrayField( base_field=models.EmailField(max_length=254), blank=True, default=list, help_text='list of comma separated email address in Bcc', size=None)), ('email_subject', models.CharField(max_length=256)), ('email_body', models.TextField()), ('email_schedule', models.DateTimeField(blank=True, help_text='Schedule time to send email', null=True)), ('email_repeat_after', models.DurationField( blank=True, help_text= 'Duration after which to resend email, You can remove it in future to stop the campaign and mark the task COMPLETE', null=True)), ('email_service', models.CharField(choices=[('mailjet', 'Mailjet')], default='mailjet', max_length=32)), ('email_last_sent_at', models.DateTimeField(blank=True, null=True)), ('task_status', models.CharField( choices=[('pending', 'Pending'), ('complete', 'Complete'), ('failed', 'Failed')], default='pending', help_text='Status of this email sending task', max_length=128)), ('email_send_count', models.IntegerField( default=0, help_text='Count of emails sent successfully')), ('task_failed_count', models.IntegerField( default=0, help_text='Count of number of times this task failed')), ('task_failure_info', django.contrib.postgres.fields.ArrayField( base_field=models.JSONField(), blank=True, help_text= 'If task failed, information regarding why it failed', null=True, size=None)), ], ), migrations.CreateModel( name='EmailSchedulerLogs', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('email_recipient_id', models.EmailField(max_length=254)), ('email_message_id', models.TextField(blank=True, null=True)), ('email_send_status', models.CharField(blank=True, max_length=128, null=True)), ('email_recipient_type', models.CharField(choices=[('to', 'To'), ('cc', 'Cc'), ('bcc', 'Bcc')], max_length=8)), ('retry_count', models.IntegerField( default=0, help_text='Number of times this email is being retried')), ('email_event_info', models.JSONField(blank=True, null=True)), ('email_scheduler', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='email_scheduler.emailscheduler')), ], ), ]Ancestors
- django.db.migrations.migration.Migration
Class variables
var dependencies-
operations list containing different Migration Model
var initialvar operations