repos
/ status-django master

status-django

mirror archived upstream

Self-hostable uptime monitor and status page on Django: HTTP checks, Lighthouse audits, SEO crawls, and email and Discord alerts.

djangodockerhandcodedpythonself-hostedsqlitestatus-pageuptime-monitoringvite

2.4 KB · 57 lines · Python Raw History
 1# Generated by Django 4.0.5 on 2022-06-19 23:33
 2
 3from django.conf import settings
 4from django.db import migrations, models
 5import django.db.models.deletion
 6import uuid
 7
 8
 9class Migration(migrations.Migration):
10
11    initial = True
12
13    dependencies = [
14        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15    ]
16
17    operations = [
18        migrations.CreateModel(
19            name='Property',
20            fields=[
21                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
22                ('url', models.CharField(max_length=255)),
23                ('is_public', models.BooleanField(default=False)),
24                ('run_interval', models.IntegerField(choices=[(60, 'Every 1 minute'), (180, 'Every 3 minutes'), (300, 'Every 5 minutes'), (900, 'Every 15 minutes'), (1800, 'Every 30 minutes'), (3600, 'Every hour')], default=180)),
25                ('last_run_at', models.DateTimeField(blank=True, null=True)),
26                ('next_run_at', models.DateTimeField(blank=True, null=True)),
27                ('created_at', models.DateTimeField(auto_now_add=True)),
28                ('updated_at', models.DateTimeField(auto_now=True)),
29                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='properties', to=settings.AUTH_USER_MODEL)),
30            ],
31            options={
32                'verbose_name': 'Property',
33                'verbose_name_plural': 'Properties',
34            },
35        ),
36        migrations.CreateModel(
37            name='Check',
38            fields=[
39                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
40                ('status_code', models.IntegerField()),
41                ('response_time', models.IntegerField(default=0)),
42                ('headers', models.JSONField(default=dict)),
43                ('created_at', models.DateTimeField(auto_now_add=True)),
44                ('property', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, related_name='statuses', to='properties.property')),
45            ],
46            options={
47                'verbose_name': 'Check',
48                'verbose_name_plural': 'Checks',
49                'get_latest_by': 'created_at',
50            },
51        ),
52        migrations.AddIndex(
53            model_name='check',
54            index=models.Index(fields=['created_at'], name='properties__created_8f285e_idx'),
55        ),
56    ]