| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # Generated by Django 5.2.13 on 2026-05-18
- import django.db.models.deletion
- import uuid_utils.compat
- from django.db import migrations, models
- class Migration(migrations.Migration):
- dependencies = [
- ('application', '0012_remove_applicationapikey_user'),
- ]
- operations = [
- migrations.CreateModel(
- name='RateLimit',
- fields=[
- ('create_time', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')),
- ('update_time', models.DateTimeField(auto_now=True, db_index=True, verbose_name='修改时间')),
- ('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
- ('is_enabled', models.BooleanField(default=False, verbose_name='是否启用限流')),
- ('rate_type', models.CharField(choices=[('QPS', '每秒请求数'), ('QPM', '每分钟请求数'), ('QPH', '每小时请求数'), ('QPD', '每日请求数')], default='QPM', max_length=10, verbose_name='限流类型')),
- ('max_requests', models.IntegerField(default=60, verbose_name='最大请求数')),
- ('burst_size', models.IntegerField(default=10, verbose_name='突发容量')),
- ('window_seconds', models.IntegerField(default=60, verbose_name='时间窗口(秒)')),
- ('application', models.OneToOneField(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, to='application.application', verbose_name='应用')),
- ],
- options={
- 'db_table': 'application_rate_limit',
- },
- ),
- migrations.CreateModel(
- name='RateLimitLog',
- fields=[
- ('create_time', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')),
- ('update_time', models.DateTimeField(auto_now=True, db_index=True, verbose_name='修改时间')),
- ('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
- ('client_ip', models.CharField(default='', max_length=45, verbose_name='客户端IP')),
- ('request_path', models.CharField(default='', max_length=512, verbose_name='请求路径')),
- ('is_limited', models.BooleanField(default=False, verbose_name='是否被限流')),
- ('request_time', models.DateTimeField(auto_now_add=True, verbose_name='请求时间')),
- ('application', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.CASCADE, to='application.application', verbose_name='应用')),
- ],
- options={
- 'db_table': 'application_rate_limit_log',
- 'ordering': ['-request_time'],
- },
- ),
- ]
|