67 lines
3.3 KiB
Python
67 lines
3.3 KiB
Python
# Generated by Django 4.2.7 on 2025-09-07 08:41
|
|
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
import django.utils.timezone
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Service',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=200, verbose_name='服务名称')),
|
|
('host', models.CharField(max_length=255, verbose_name='主机/IP')),
|
|
('port', models.PositiveIntegerField(blank=True, null=True, verbose_name='端口(可选)')),
|
|
('check_type', models.CharField(choices=[('ping', 'Ping检测'), ('tcp', 'TCP端口检测'), ('http', 'HTTP请求'), ('custom', '自定义脚本')], default='ping', max_length=50, verbose_name='检测类型')),
|
|
('description', models.TextField(blank=True, null=True, verbose_name='描述')),
|
|
('is_active', models.BooleanField(default=True, verbose_name='是否启用监控')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
|
],
|
|
options={
|
|
'verbose_name': '服务',
|
|
'verbose_name_plural': '服务',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ServiceGroup',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=100, unique=True, verbose_name='服务分组')),
|
|
('description', models.TextField(blank=True, null=True, verbose_name='描述')),
|
|
],
|
|
options={
|
|
'verbose_name': '服务分组',
|
|
'verbose_name_plural': '服务分组',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ServiceCheckRecord',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('status', models.CharField(choices=[('UP', '正常'), ('DOWN', '故障'), ('UNKNOWN', '未知')], max_length=10, verbose_name='状态')),
|
|
('response_time', models.FloatField(blank=True, null=True, verbose_name='响应时间(ms)')),
|
|
('message', models.TextField(blank=True, null=True, verbose_name='返回信息/错误原因')),
|
|
('checked_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='检测时间')),
|
|
('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='records', to='status.service')),
|
|
],
|
|
options={
|
|
'verbose_name': '服务检测记录',
|
|
'verbose_name_plural': '服务检测记录',
|
|
'ordering': ['-checked_at'],
|
|
},
|
|
),
|
|
migrations.AddField(
|
|
model_name='service',
|
|
name='group',
|
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='services', to='status.servicegroup', verbose_name='所属分组'),
|
|
),
|
|
]
|