Browse Source
1. 删除 Stack_CoreIMS_Binding 表的审计字段 - 移除 CreatedAt, UpdatedAt, CreatedBy, UpdatedBy, IsDeleted 字段 - 简化表结构,作为子表不再需要独立的审计信息 2. 更新字段名称 - Stack_CoreIMS_Binding.StackId NetworkStackConfigId - NetworkStackConfig 新增 NetworkStackName 字段 3. 更新索引和约束 - 删除旧的 StackId 相关索引 - 创建新的 NetworkStackConfigId 相关索引 - 为 NetworkStackName 创建唯一索引 4. 更新外键关系 - 修改外键约束以使用新的字段名 - 设置级联删除关系feature/x1-web-request
4 changed files with 1298 additions and 39 deletions
@ -0,0 +1,909 @@ |
|||
// <auto-generated />
|
|||
using System; |
|||
using CellularManagement.Infrastructure.Context; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
|||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace X1.Infrastructure.Migrations |
|||
{ |
|||
[DbContext(typeof(AppDbContext))] |
|||
[Migration("20250728164913_UpdateNetworkStackConfigAndBindings")] |
|||
partial class UpdateNetworkStackConfigAndBindings |
|||
{ |
|||
/// <inheritdoc />
|
|||
protected override void BuildTargetModel(ModelBuilder modelBuilder) |
|||
{ |
|||
#pragma warning disable 612, 618
|
|||
modelBuilder |
|||
.HasAnnotation("ProductVersion", "8.0.0") |
|||
.HasAnnotation("Relational:MaxIdentifierLength", 63); |
|||
|
|||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.AppRole", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("角色ID,主键"); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken() |
|||
.HasColumnType("text") |
|||
.HasComment("并发控制戳"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("角色描述"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("角色名称"); |
|||
|
|||
b.Property<string>("NormalizedName") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化角色名称(大写)"); |
|||
|
|||
b.Property<DateTime>("UpdatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Roles_Name"); |
|||
|
|||
b.HasIndex("NormalizedName") |
|||
.IsUnique() |
|||
.HasDatabaseName("RoleNameIndex"); |
|||
|
|||
b.ToTable("Roles", null, t => |
|||
{ |
|||
t.HasComment("角色表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.AppUser", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("用户ID,主键"); |
|||
|
|||
b.Property<int>("AccessFailedCount") |
|||
.HasColumnType("integer") |
|||
.HasComment("登录失败次数"); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken() |
|||
.HasColumnType("text") |
|||
.HasComment("并发控制戳"); |
|||
|
|||
b.Property<DateTime>("CreatedTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("Email") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("电子邮箱"); |
|||
|
|||
b.Property<bool>("EmailConfirmed") |
|||
.HasColumnType("boolean") |
|||
.HasComment("邮箱是否已验证"); |
|||
|
|||
b.Property<bool>("IsActive") |
|||
.ValueGeneratedOnAdd() |
|||
.HasColumnType("boolean") |
|||
.HasDefaultValue(true) |
|||
.HasComment("用户状态(true: 启用, false: 禁用)"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.ValueGeneratedOnAdd() |
|||
.HasColumnType("boolean") |
|||
.HasDefaultValue(false) |
|||
.HasComment("是否已删除"); |
|||
|
|||
b.Property<DateTime?>("LastLoginTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("最后登录时间"); |
|||
|
|||
b.Property<bool>("LockoutEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用账户锁定"); |
|||
|
|||
b.Property<DateTimeOffset?>("LockoutEnd") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("账户锁定结束时间"); |
|||
|
|||
b.Property<DateTime?>("ModifiedTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("修改时间"); |
|||
|
|||
b.Property<string>("NormalizedEmail") |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化电子邮箱(大写)"); |
|||
|
|||
b.Property<string>("NormalizedUserName") |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化账号(大写)"); |
|||
|
|||
b.Property<string>("PasswordHash") |
|||
.HasColumnType("text") |
|||
.HasComment("密码哈希值"); |
|||
|
|||
b.Property<string>("PhoneNumber") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("电话号码"); |
|||
|
|||
b.Property<bool>("PhoneNumberConfirmed") |
|||
.HasColumnType("boolean") |
|||
.HasComment("电话号码是否已验证"); |
|||
|
|||
b.Property<string>("RealName") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("用户名"); |
|||
|
|||
b.Property<string>("SecurityStamp") |
|||
.HasColumnType("text") |
|||
.HasComment("安全戳,用于并发控制"); |
|||
|
|||
b.Property<bool>("TwoFactorEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用双因素认证"); |
|||
|
|||
b.Property<string>("UserName") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("账号"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Email") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_Email"); |
|||
|
|||
b.HasIndex("NormalizedEmail") |
|||
.HasDatabaseName("EmailIndex"); |
|||
|
|||
b.HasIndex("NormalizedUserName") |
|||
.IsUnique() |
|||
.HasDatabaseName("UserNameIndex"); |
|||
|
|||
b.HasIndex("PhoneNumber") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_PhoneNumber"); |
|||
|
|||
b.HasIndex("UserName") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_UserName"); |
|||
|
|||
b.ToTable("Users", null, t => |
|||
{ |
|||
t.HasComment("用户表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.CellularDevice", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("设备ID"); |
|||
|
|||
b.Property<int>("AgentPort") |
|||
.HasColumnType("integer") |
|||
.HasComment("Agent端口"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("设备描述"); |
|||
|
|||
b.Property<string>("IpAddress") |
|||
.IsRequired() |
|||
.HasMaxLength(45) |
|||
.HasColumnType("character varying(45)") |
|||
.HasComment("IP地址"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用"); |
|||
|
|||
b.Property<bool>("IsRunning") |
|||
.HasColumnType("boolean") |
|||
.HasComment("设备状态(启动/未启动)"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("设备名称"); |
|||
|
|||
b.Property<string>("SerialNumber") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("序列号"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("SerialNumber") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_CellularDevices_SerialNumber"); |
|||
|
|||
b.ToTable("CellularDevices", null, t => |
|||
{ |
|||
t.HasComment("蜂窝设备表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.ProtocolVersion", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("版本ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("版本描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用"); |
|||
|
|||
b.Property<string>("MinimumSupportedVersion") |
|||
.HasMaxLength(20) |
|||
.HasColumnType("character varying(20)") |
|||
.HasComment("最低支持版本"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("版本名称"); |
|||
|
|||
b.Property<DateTime?>("ReleaseDate") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("发布日期"); |
|||
|
|||
b.Property<string>("SerialNumber") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("设备序列号"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Version") |
|||
.IsRequired() |
|||
.HasMaxLength(20) |
|||
.HasColumnType("character varying(20)") |
|||
.HasComment("版本号"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("SerialNumber") |
|||
.HasDatabaseName("IX_ProtocolVersions_SerialNumber"); |
|||
|
|||
b.HasIndex("Version") |
|||
.HasDatabaseName("IX_ProtocolVersions_Version"); |
|||
|
|||
b.ToTable("ProtocolVersions", null, t => |
|||
{ |
|||
t.HasComment("协议版本表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Logging.LoginLog", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("日志ID"); |
|||
|
|||
b.Property<string>("Browser") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("浏览器信息"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("FailureReason") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)") |
|||
.HasComment("失败原因"); |
|||
|
|||
b.Property<string>("IpAddress") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("登录IP"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsSuccess") |
|||
.HasColumnType("boolean") |
|||
.HasComment("登录状态(成功/失败)"); |
|||
|
|||
b.Property<string>("Location") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)") |
|||
.HasComment("登录位置"); |
|||
|
|||
b.Property<string>("LoginSource") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<DateTime>("LoginTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("登录时间"); |
|||
|
|||
b.Property<string>("LoginType") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("OperatingSystem") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("操作系统信息"); |
|||
|
|||
b.Property<string>("SessionId") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("UserAgent") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("设备信息"); |
|||
|
|||
b.Property<string>("UserId") |
|||
.IsRequired() |
|||
.HasMaxLength(450) |
|||
.HasColumnType("character varying(450)") |
|||
.HasComment("用户ID"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("IpAddress") |
|||
.HasDatabaseName("IX_LoginLogs_IpAddress"); |
|||
|
|||
b.HasIndex("LoginTime") |
|||
.HasDatabaseName("IX_LoginLogs_LoginTime"); |
|||
|
|||
b.HasIndex("UserId") |
|||
.HasDatabaseName("IX_LoginLogs_UserId"); |
|||
|
|||
b.HasIndex("UserId", "LoginTime") |
|||
.HasDatabaseName("IX_LoginLogs_UserId_LoginTime"); |
|||
|
|||
b.ToTable("LoginLogs", null, t => |
|||
{ |
|||
t.HasComment("用户登录日志表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.CoreNetworkConfig", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_CoreNetworkConfigs_Name"); |
|||
|
|||
b.ToTable("CoreNetworkConfigs", null, t => |
|||
{ |
|||
t.HasComment("核心网配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.IMS_Configuration", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_IMS_Configurations_Name"); |
|||
|
|||
b.ToTable("IMS_Configurations", null, t => |
|||
{ |
|||
t.HasComment("IMS配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("描述"); |
|||
|
|||
b.Property<bool>("IsActive") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否激活"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<string>("NetworkStackName") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("网络栈名称"); |
|||
|
|||
b.Property<string>("RanId") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("RAN配置ID"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("IsActive") |
|||
.HasDatabaseName("IX_NetworkStackConfigs_IsActive"); |
|||
|
|||
b.HasIndex("NetworkStackName") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_NetworkStackConfigs_NetworkStackName"); |
|||
|
|||
b.HasIndex("RanId") |
|||
.HasDatabaseName("IX_NetworkStackConfigs_RanId"); |
|||
|
|||
b.ToTable("NetworkStackConfigs", null, t => |
|||
{ |
|||
t.HasComment("网络栈配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.RAN_Configuration", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_RAN_Configurations_Name"); |
|||
|
|||
b.ToTable("RAN_Configurations", null, t => |
|||
{ |
|||
t.HasComment("RAN配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.Stack_CoreIMS_Binding", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("绑定关系ID"); |
|||
|
|||
b.Property<string>("CnId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("核心网配置ID"); |
|||
|
|||
b.Property<string>("ImsId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("IMS配置ID"); |
|||
|
|||
b.Property<int>("Index") |
|||
.HasColumnType("integer") |
|||
.HasComment("索引"); |
|||
|
|||
b.Property<string>("NetworkStackConfigId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("网络栈配置ID"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("CnId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_CnId"); |
|||
|
|||
b.HasIndex("ImsId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_ImsId"); |
|||
|
|||
b.HasIndex("NetworkStackConfigId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_NetworkStackConfigId"); |
|||
|
|||
b.HasIndex("NetworkStackConfigId", "Index") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_NetworkStackConfigId_Index"); |
|||
|
|||
b.ToTable("Stack_CoreIMS_Bindings", null, t => |
|||
{ |
|||
t.HasComment("栈与核心网/IMS绑定关系表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Permission", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Code") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("Type") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.ToTable("Permissions", (string)null); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.RolePermission", b => |
|||
{ |
|||
b.Property<string>("RoleId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("PermissionId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.HasKey("RoleId", "PermissionId"); |
|||
|
|||
b.HasIndex("PermissionId"); |
|||
|
|||
b.ToTable("RolePermissions", (string)null); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.UserRole", b => |
|||
{ |
|||
b.Property<string>("UserId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("RoleId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("UserId", "RoleId"); |
|||
|
|||
b.HasIndex("RoleId"); |
|||
|
|||
b.ToTable("UserRoles", null, t => |
|||
{ |
|||
t.HasComment("用户角色关系表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.ProtocolVersion", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.Device.CellularDevice", null) |
|||
.WithMany("ProtocolVersions") |
|||
.HasForeignKey("SerialNumber") |
|||
.HasPrincipalKey("SerialNumber") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Logging.LoginLog", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.AppUser", null) |
|||
.WithMany() |
|||
.HasForeignKey("UserId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.RAN_Configuration", null) |
|||
.WithMany() |
|||
.HasForeignKey("RanId") |
|||
.OnDelete(DeleteBehavior.SetNull); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.Stack_CoreIMS_Binding", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.CoreNetworkConfig", "CoreNetworkConfig") |
|||
.WithMany() |
|||
.HasForeignKey("CnId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.IMS_Configuration", "IMSConfiguration") |
|||
.WithMany() |
|||
.HasForeignKey("ImsId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", "NetworkStackConfig") |
|||
.WithMany("StackCoreIMSBindings") |
|||
.HasForeignKey("NetworkStackConfigId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("CoreNetworkConfig"); |
|||
|
|||
b.Navigation("IMSConfiguration"); |
|||
|
|||
b.Navigation("NetworkStackConfig"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.RolePermission", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.Permission", "Permission") |
|||
.WithMany("RolePermissions") |
|||
.HasForeignKey("PermissionId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.AppRole", "Role") |
|||
.WithMany() |
|||
.HasForeignKey("RoleId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("Permission"); |
|||
|
|||
b.Navigation("Role"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.UserRole", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.AppRole", "Role") |
|||
.WithMany() |
|||
.HasForeignKey("RoleId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.AppUser", "User") |
|||
.WithMany() |
|||
.HasForeignKey("UserId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("Role"); |
|||
|
|||
b.Navigation("User"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.CellularDevice", b => |
|||
{ |
|||
b.Navigation("ProtocolVersions"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.Navigation("StackCoreIMSBindings"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Permission", b => |
|||
{ |
|||
b.Navigation("RolePermissions"); |
|||
}); |
|||
#pragma warning restore 612, 618
|
|||
} |
|||
} |
|||
} |
@ -0,0 +1,266 @@ |
|||
using System; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace X1.Infrastructure.Migrations |
|||
{ |
|||
/// <inheritdoc />
|
|||
public partial class UpdateNetworkStackConfigAndBindings : Migration |
|||
{ |
|||
/// <inheritdoc />
|
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_CoreNetworkConfigs_CnId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_IMS_Configurations_ImsId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_NetworkStackConfigs_StackId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_StackId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_StackId_Index", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropUniqueConstraint( |
|||
name: "AK_NetworkStackConfigs_StackId", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_NetworkStackConfigs_StackId", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "CreatedAt", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "CreatedBy", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "IsDeleted", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "StackId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "UpdatedAt", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "UpdatedBy", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "StackId", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "NetworkStackConfigId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "网络栈配置ID"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "NetworkStackName", |
|||
table: "NetworkStackConfigs", |
|||
type: "character varying(100)", |
|||
maxLength: 100, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "网络栈名称"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_NetworkStackConfigId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "NetworkStackConfigId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_NetworkStackConfigId_Index", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
columns: new[] { "NetworkStackConfigId", "Index" }, |
|||
unique: true); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_NetworkStackConfigs_NetworkStackName", |
|||
table: "NetworkStackConfigs", |
|||
column: "NetworkStackName", |
|||
unique: true); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_CoreNetworkConfigs_CnId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "CnId", |
|||
principalTable: "CoreNetworkConfigs", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Restrict); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_IMS_Configurations_ImsId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "ImsId", |
|||
principalTable: "IMS_Configurations", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Restrict); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_NetworkStackConfigs_NetworkStackConf~", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "NetworkStackConfigId", |
|||
principalTable: "NetworkStackConfigs", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
} |
|||
|
|||
/// <inheritdoc />
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_CoreNetworkConfigs_CnId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_IMS_Configurations_ImsId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_NetworkStackConfigs_NetworkStackConf~", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_NetworkStackConfigId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_NetworkStackConfigId_Index", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_NetworkStackConfigs_NetworkStackName", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "NetworkStackConfigId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "NetworkStackName", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.AddColumn<DateTime>( |
|||
name: "CreatedAt", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "timestamp with time zone", |
|||
nullable: false, |
|||
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), |
|||
comment: "创建时间"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "CreatedBy", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "text", |
|||
nullable: false, |
|||
defaultValue: ""); |
|||
|
|||
migrationBuilder.AddColumn<bool>( |
|||
name: "IsDeleted", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "boolean", |
|||
nullable: false, |
|||
defaultValue: false); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "StackId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "栈ID"); |
|||
|
|||
migrationBuilder.AddColumn<DateTime>( |
|||
name: "UpdatedAt", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "timestamp with time zone", |
|||
nullable: false, |
|||
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), |
|||
comment: "更新时间"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "UpdatedBy", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "text", |
|||
nullable: true); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "StackId", |
|||
table: "NetworkStackConfigs", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "栈ID"); |
|||
|
|||
migrationBuilder.AddUniqueConstraint( |
|||
name: "AK_NetworkStackConfigs_StackId", |
|||
table: "NetworkStackConfigs", |
|||
column: "StackId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_StackId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "StackId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_StackId_Index", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
columns: new[] { "StackId", "Index" }, |
|||
unique: true); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_NetworkStackConfigs_StackId", |
|||
table: "NetworkStackConfigs", |
|||
column: "StackId", |
|||
unique: true); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_CoreNetworkConfigs_CnId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "CnId", |
|||
principalTable: "CoreNetworkConfigs", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_IMS_Configurations_ImsId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "ImsId", |
|||
principalTable: "IMS_Configurations", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_NetworkStackConfigs_StackId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "StackId", |
|||
principalTable: "NetworkStackConfigs", |
|||
principalColumn: "StackId", |
|||
onDelete: ReferentialAction.Cascade); |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue