Files
django-vue3-admin-gd/backend/system/migrations/0001_initial.py
2025-07-03 11:45:32 +08:00

1201 lines
41 KiB
Python

# Generated by Django 5.2.1 on 2025-07-03 03:44
import django.contrib.auth.models
import django.contrib.auth.validators
import django.db.models.deletion
import django.utils.timezone
import utils.utils
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
("auth", "0012_alter_user_first_name_max_length"),
]
operations = [
migrations.CreateModel(
name="DictType",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
(
"name",
models.CharField(
default="", max_length=100, verbose_name="字典名称"
),
),
(
"type",
models.CharField(
db_index=True,
default="",
max_length=100,
verbose_name="字典类型",
),
),
(
"status",
models.IntegerField(
choices=[(0, "禁用"), (1, "启用")],
default=1,
verbose_name="状态",
),
),
(
"deleted_time",
models.DateTimeField(
blank=True, null=True, verbose_name="删除时间"
),
),
],
options={
"verbose_name": "字典类型",
"verbose_name_plural": "字典类型",
"db_table": "system_dict_type",
"ordering": ["-id"],
},
),
migrations.CreateModel(
name="LoginLog",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
(
"username",
models.CharField(db_comment="用户账号", default="", max_length=50),
),
(
"result",
models.IntegerField(
choices=[(0, "失败"), (1, "成功")],
db_comment="登录结果",
default=1,
),
),
("user_ip", models.CharField(db_comment="用户 IP", max_length=50)),
(
"user_agent",
models.CharField(db_comment="浏览器 UA", max_length=512),
),
],
options={
"verbose_name": "系统访问记录",
"verbose_name_plural": "系统访问记录",
"db_table": "system_login_log",
"ordering": ["-id"],
},
),
migrations.CreateModel(
name="MenuMeta",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
("title", models.CharField(db_comment="标题", max_length=200)),
(
"icon",
models.CharField(blank=True, db_comment="图标", max_length=100),
),
("sort", models.IntegerField(db_comment="排序", default=0)),
(
"affix_tab",
models.BooleanField(db_comment="固定标签页", default=False),
),
(
"badge",
models.CharField(blank=True, db_comment="徽章文本", max_length=50),
),
(
"badge_type",
models.CharField(blank=True, db_comment="徽章类型", max_length=20),
),
(
"badge_variants",
models.CharField(blank=True, db_comment="徽章样式", max_length=20),
),
("iframe_src", models.URLField(blank=True, db_comment="内嵌页面URL")),
("link", models.URLField(blank=True, db_comment="外部链接")),
(
"hide_in_menu",
models.BooleanField(db_comment="隐藏菜单", default=False),
),
(
"hide_children_in_menu",
models.BooleanField(db_comment="隐藏子菜单", default=False),
),
],
options={
"verbose_name": "菜单元数据",
"verbose_name_plural": "菜单元数据",
"db_table": "system_menu_meta",
},
),
migrations.CreateModel(
name="Post",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
("code", models.CharField(db_comment="岗位编码", max_length=64)),
("name", models.CharField(db_comment="岗位名称", max_length=50)),
("sort", models.IntegerField(db_comment="显示顺序", default=0)),
(
"status",
models.IntegerField(
choices=[(0, "禁用"), (1, "启用")],
default=1,
verbose_name="状态",
),
),
],
options={
"verbose_name": "岗位信息表",
"verbose_name_plural": "岗位信息表",
"db_table": "system_post",
},
),
migrations.CreateModel(
name="Role",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
("name", models.CharField(max_length=100, verbose_name="角色名称")),
(
"code",
models.CharField(
blank=True, max_length=100, verbose_name="角色标识"
),
),
(
"status",
models.IntegerField(
choices=[(0, "禁用"), (1, "启用")],
default=1,
verbose_name="角色状态",
),
),
(
"sort",
models.IntegerField(
default=0, help_text="数值越小越靠前", verbose_name="显示排序"
),
),
("remark", models.TextField(blank=True, verbose_name="备注")),
],
options={
"verbose_name": "角色管理",
"verbose_name_plural": "角色管理",
"ordering": ["-create_time"],
},
),
migrations.CreateModel(
name="Dept",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
("name", models.CharField(max_length=100, verbose_name="部门名称")),
(
"status",
models.SmallIntegerField(
choices=[(0, "禁用"), (1, "启用")],
default=0,
verbose_name="部门状态",
),
),
(
"create_time",
models.DateTimeField(auto_now_add=True, verbose_name="创建时间"),
),
(
"sort",
models.IntegerField(
default=0, help_text="数值越小越靠前", verbose_name="显示排序"
),
),
(
"leader",
models.CharField(
blank=True, max_length=20, null=True, verbose_name="负责人"
),
),
(
"phone",
models.CharField(
blank=True, max_length=20, null=True, verbose_name="联系电话"
),
),
(
"email",
models.EmailField(
blank=True, max_length=254, null=True, verbose_name="邮箱"
),
),
("remark", models.TextField(blank=True, verbose_name="备注")),
(
"pid",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="children",
to="system.dept",
verbose_name="父部门 ID",
),
),
],
options={
"verbose_name": "部门管理",
"verbose_name_plural": "部门管理",
"ordering": ["-create_time"],
},
),
migrations.CreateModel(
name="DictData",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
("sort", models.IntegerField(default=0, verbose_name="字典排序")),
(
"label",
models.CharField(
default="", max_length=100, verbose_name="字典标签"
),
),
(
"value",
models.CharField(
default="", max_length=100, verbose_name="字典键值"
),
),
(
"status",
models.IntegerField(
choices=[(0, "禁用"), (1, "启用")],
default=1,
verbose_name="状态",
),
),
(
"color_type",
models.CharField(
blank=True, default="", max_length=100, verbose_name="颜色类型"
),
),
(
"css_class",
models.CharField(
blank=True, default="", max_length=100, verbose_name="css 样式"
),
),
(
"dict_type",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="dict_data",
to="system.dicttype",
verbose_name="字典类型",
),
),
],
options={
"verbose_name": "字典数据",
"verbose_name_plural": "字典数据",
"db_table": "system_dict_data",
"ordering": ["sort", "id"],
},
),
migrations.CreateModel(
name="Menu",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
("name", models.CharField(max_length=100, verbose_name="菜单名称")),
(
"status",
models.IntegerField(
choices=[(0, "禁用"), (1, "启用")],
default=1,
verbose_name="状态",
),
),
(
"type",
models.CharField(
choices=[
("catalog", "目录"),
("menu", "菜单"),
("button", "按钮"),
("embedded", "内嵌页面"),
("link", "外部链接"),
],
max_length=20,
verbose_name="菜单类型",
),
),
(
"sort",
models.IntegerField(
default=0, help_text="数值越小越靠前", verbose_name="显示排序"
),
),
(
"path",
models.CharField(
blank=True, max_length=200, verbose_name="路由路径"
),
),
(
"component",
models.CharField(
blank=True, max_length=200, verbose_name="组件路径"
),
),
(
"auth_code",
models.CharField(
blank=True, max_length=100, verbose_name="权限编码"
),
),
(
"pid",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="children",
to="system.menu",
verbose_name="父菜单",
),
),
(
"meta",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
to="system.menumeta",
verbose_name="元数据",
),
),
],
options={
"verbose_name": "菜单",
"verbose_name_plural": "菜单管理",
"ordering": ["meta__sort", "id"],
},
),
migrations.CreateModel(
name="User",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("password", models.CharField(max_length=128, verbose_name="password")),
(
"last_login",
models.DateTimeField(
blank=True, null=True, verbose_name="last login"
),
),
(
"is_superuser",
models.BooleanField(
default=False,
help_text="Designates that this user has all permissions without explicitly assigning them.",
verbose_name="superuser status",
),
),
(
"username",
models.CharField(
error_messages={
"unique": "A user with that username already exists."
},
help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.",
max_length=150,
unique=True,
validators=[
django.contrib.auth.validators.UnicodeUsernameValidator()
],
verbose_name="username",
),
),
(
"first_name",
models.CharField(
blank=True, max_length=150, verbose_name="first name"
),
),
(
"last_name",
models.CharField(
blank=True, max_length=150, verbose_name="last name"
),
),
(
"email",
models.EmailField(
blank=True, max_length=254, verbose_name="email address"
),
),
(
"is_staff",
models.BooleanField(
default=False,
help_text="Designates whether the user can log into this admin site.",
verbose_name="staff status",
),
),
(
"is_active",
models.BooleanField(
default=True,
help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.",
verbose_name="active",
),
),
(
"date_joined",
models.DateTimeField(
default=django.utils.timezone.now, verbose_name="date joined"
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True,
db_comment="创建时间",
help_text="创建时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
(
"mobile",
models.CharField(
db_comment="手机号",
max_length=11,
null=True,
validators=[utils.utils.validate_mobile],
),
),
(
"nickname",
models.CharField(
blank=True, db_comment="昵称", max_length=50, null=True
),
),
(
"gender",
models.SmallIntegerField(
blank=True, db_comment="性别", default=0, null=True
),
),
(
"language",
models.CharField(
blank=True,
db_comment="语言",
max_length=20,
null=True,
verbose_name="语言",
),
),
(
"city",
models.CharField(
blank=True,
db_comment="城市",
max_length=20,
null=True,
verbose_name="城市",
),
),
(
"province",
models.CharField(
blank=True,
db_comment="省份",
max_length=50,
null=True,
verbose_name="省份",
),
),
(
"country",
models.CharField(
blank=True,
db_comment="国家",
max_length=50,
null=True,
verbose_name="国家",
),
),
(
"avatar_url",
models.URLField(
blank=True, db_comment="头像", null=True, verbose_name="头像"
),
),
(
"status",
models.IntegerField(
choices=[(0, "禁用"), (1, "启用")],
default=1,
verbose_name="状态",
),
),
(
"login_ip",
models.GenericIPAddressField(
blank=True, db_comment="最后登录IP", null=True
),
),
(
"groups",
models.ManyToManyField(
blank=True,
help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.",
related_name="user_set",
related_query_name="user",
to="auth.group",
verbose_name="groups",
),
),
(
"user_permissions",
models.ManyToManyField(
blank=True,
help_text="Specific permissions for this user.",
related_name="user_set",
related_query_name="user",
to="auth.permission",
verbose_name="user permissions",
),
),
(
"dept",
models.ManyToManyField(
blank=True,
db_constraint=False,
related_name="users",
to="system.dept",
verbose_name="部门",
),
),
(
"post",
models.ManyToManyField(
blank=True,
db_constraint=False,
related_name="users",
to="system.post",
verbose_name="岗位",
),
),
(
"role",
models.ManyToManyField(
blank=True,
db_constraint=False,
related_name="users",
to="system.role",
verbose_name="角色",
),
),
],
options={
"verbose_name": "用户数据",
"verbose_name_plural": "用户数据",
"db_table": "system_users",
},
managers=[
("objects", django.contrib.auth.models.UserManager()),
],
),
migrations.CreateModel(
name="RolePermission",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"remark",
models.CharField(
blank=True,
db_comment="备注",
help_text="备注",
max_length=256,
null=True,
),
),
(
"creator",
models.CharField(
blank=True,
db_comment="创建人",
help_text="创建人",
max_length=64,
null=True,
),
),
(
"modifier",
models.CharField(
blank=True,
db_comment="修改人",
help_text="修改人",
max_length=64,
null=True,
),
),
(
"update_time",
models.DateTimeField(
auto_now=True,
db_comment="修改时间",
help_text="修改时间",
null=True,
),
),
(
"is_deleted",
models.BooleanField(db_comment="是否软删除", default=False),
),
(
"create_time",
models.DateTimeField(
auto_now_add=True, verbose_name="权限关联时间"
),
),
(
"menu",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="system.menu",
verbose_name="菜单/权限",
),
),
(
"role",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="system.role",
verbose_name="角色",
),
),
],
options={
"verbose_name": "角色权限关联",
"verbose_name_plural": "角色权限关联",
"db_table": "system_role_permission",
},
),
migrations.AddField(
model_name="role",
name="permissions",
field=models.ManyToManyField(
through="system.RolePermission",
to="system.menu",
verbose_name="关联权限",
),
),
]