using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace ZB.MOM.WW.OtOpcUa.Configuration.Migrations { /// public partial class V2HostingAlignment : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( name: "FK_Device_ConfigGeneration_GenerationId", table: "Device"); migrationBuilder.DropForeignKey( name: "FK_DriverInstance_ConfigGeneration_GenerationId", table: "DriverInstance"); migrationBuilder.DropForeignKey( name: "FK_Equipment_ConfigGeneration_GenerationId", table: "Equipment"); migrationBuilder.DropForeignKey( name: "FK_Namespace_ConfigGeneration_GenerationId", table: "Namespace"); migrationBuilder.DropForeignKey( name: "FK_NodeAcl_ConfigGeneration_GenerationId", table: "NodeAcl"); migrationBuilder.DropForeignKey( name: "FK_PollGroup_ConfigGeneration_GenerationId", table: "PollGroup"); migrationBuilder.DropForeignKey( name: "FK_Script_ConfigGeneration_GenerationId", table: "Script"); migrationBuilder.DropForeignKey( name: "FK_ScriptedAlarm_ConfigGeneration_GenerationId", table: "ScriptedAlarm"); migrationBuilder.DropForeignKey( name: "FK_Tag_ConfigGeneration_GenerationId", table: "Tag"); migrationBuilder.DropForeignKey( name: "FK_UnsArea_ConfigGeneration_GenerationId", table: "UnsArea"); migrationBuilder.DropForeignKey( name: "FK_UnsLine_ConfigGeneration_GenerationId", table: "UnsLine"); migrationBuilder.DropForeignKey( name: "FK_VirtualTag_ConfigGeneration_GenerationId", table: "VirtualTag"); migrationBuilder.DropTable( name: "ClusterNodeGenerationState"); migrationBuilder.DropTable( name: "ConfigGeneration"); migrationBuilder.DropIndex( name: "IX_VirtualTag_Generation_Script", table: "VirtualTag"); migrationBuilder.DropIndex( name: "UX_VirtualTag_Generation_EquipmentPath", table: "VirtualTag"); migrationBuilder.DropIndex( name: "UX_VirtualTag_Generation_LogicalId", table: "VirtualTag"); migrationBuilder.DropIndex( name: "IX_UnsLine_Generation_Area", table: "UnsLine"); migrationBuilder.DropIndex( name: "UX_UnsLine_Generation_AreaName", table: "UnsLine"); migrationBuilder.DropIndex( name: "UX_UnsLine_Generation_LogicalId", table: "UnsLine"); migrationBuilder.DropIndex( name: "IX_UnsArea_Generation_Cluster", table: "UnsArea"); migrationBuilder.DropIndex( name: "UX_UnsArea_Generation_ClusterName", table: "UnsArea"); migrationBuilder.DropIndex( name: "UX_UnsArea_Generation_LogicalId", table: "UnsArea"); migrationBuilder.DropIndex( name: "IX_Tag_Generation_Driver_Device", table: "Tag"); migrationBuilder.DropIndex( name: "IX_Tag_Generation_Equipment", table: "Tag"); migrationBuilder.DropIndex( name: "UX_Tag_Generation_EquipmentPath", table: "Tag"); migrationBuilder.DropIndex( name: "UX_Tag_Generation_FolderPath", table: "Tag"); migrationBuilder.DropIndex( name: "UX_Tag_Generation_LogicalId", table: "Tag"); migrationBuilder.DropIndex( name: "IX_ScriptedAlarm_Generation_Script", table: "ScriptedAlarm"); migrationBuilder.DropIndex( name: "UX_ScriptedAlarm_Generation_EquipmentPath", table: "ScriptedAlarm"); migrationBuilder.DropIndex( name: "UX_ScriptedAlarm_Generation_LogicalId", table: "ScriptedAlarm"); migrationBuilder.DropIndex( name: "IX_Script_Generation_SourceHash", table: "Script"); migrationBuilder.DropIndex( name: "UX_Script_Generation_LogicalId", table: "Script"); migrationBuilder.DropIndex( name: "IX_PollGroup_Generation_Driver", table: "PollGroup"); migrationBuilder.DropIndex( name: "UX_PollGroup_Generation_LogicalId", table: "PollGroup"); migrationBuilder.DropIndex( name: "IX_NodeAcl_Generation_Cluster", table: "NodeAcl"); migrationBuilder.DropIndex( name: "IX_NodeAcl_Generation_Group", table: "NodeAcl"); migrationBuilder.DropIndex( name: "IX_NodeAcl_Generation_Scope", table: "NodeAcl"); migrationBuilder.DropIndex( name: "UX_NodeAcl_Generation_GroupScope", table: "NodeAcl"); migrationBuilder.DropIndex( name: "UX_NodeAcl_Generation_LogicalId", table: "NodeAcl"); migrationBuilder.DropIndex( name: "IX_Namespace_Generation_Cluster", table: "Namespace"); migrationBuilder.DropIndex( name: "UX_Namespace_Generation_Cluster_Kind", table: "Namespace"); migrationBuilder.DropIndex( name: "UX_Namespace_Generation_LogicalId", table: "Namespace"); migrationBuilder.DropIndex( name: "UX_Namespace_Generation_LogicalId_Cluster", table: "Namespace"); migrationBuilder.DropIndex( name: "UX_Namespace_Generation_NamespaceUri", table: "Namespace"); migrationBuilder.DropIndex( name: "IX_Equipment_Generation_Driver", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_Equipment_Generation_Line", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_Equipment_Generation_MachineCode", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_Equipment_Generation_SAPID", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_Equipment_Generation_ZTag", table: "Equipment"); migrationBuilder.DropIndex( name: "UX_Equipment_Generation_LinePath", table: "Equipment"); migrationBuilder.DropIndex( name: "UX_Equipment_Generation_LogicalId", table: "Equipment"); migrationBuilder.DropIndex( name: "UX_Equipment_Generation_Uuid", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_DriverInstance_Generation_Cluster", table: "DriverInstance"); migrationBuilder.DropIndex( name: "IX_DriverInstance_Generation_Namespace", table: "DriverInstance"); migrationBuilder.DropIndex( name: "UX_DriverInstance_Generation_LogicalId", table: "DriverInstance"); migrationBuilder.DropIndex( name: "IX_Device_Generation_Driver", table: "Device"); migrationBuilder.DropIndex( name: "UX_Device_Generation_LogicalId", table: "Device"); migrationBuilder.DropIndex( name: "UX_ClusterNode_Primary_Per_Cluster", table: "ClusterNode"); migrationBuilder.DropColumn( name: "GenerationId", table: "VirtualTag"); migrationBuilder.DropColumn( name: "GenerationId", table: "UnsLine"); migrationBuilder.DropColumn( name: "GenerationId", table: "UnsArea"); migrationBuilder.DropColumn( name: "GenerationId", table: "Tag"); migrationBuilder.DropColumn( name: "GenerationId", table: "ScriptedAlarm"); migrationBuilder.DropColumn( name: "GenerationId", table: "Script"); migrationBuilder.DropColumn( name: "GenerationId", table: "PollGroup"); migrationBuilder.DropColumn( name: "GenerationId", table: "NodeAcl"); migrationBuilder.DropColumn( name: "GenerationId", table: "Namespace"); migrationBuilder.DropColumn( name: "GenerationId", table: "Equipment"); migrationBuilder.DropColumn( name: "GenerationId", table: "DriverInstance"); migrationBuilder.DropColumn( name: "GenerationId", table: "Device"); migrationBuilder.DropColumn( name: "RedundancyRole", table: "ClusterNode"); migrationBuilder.RenameIndex( name: "IX_UnsArea_ClusterId", table: "UnsArea", newName: "IX_UnsArea_Cluster"); migrationBuilder.RenameIndex( name: "IX_Namespace_ClusterId", table: "Namespace", newName: "IX_Namespace_Cluster"); migrationBuilder.RenameIndex( name: "IX_DriverInstance_ClusterId", table: "DriverInstance", newName: "IX_DriverInstance_Cluster"); migrationBuilder.AddColumn( name: "RowVersion", table: "VirtualTag", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "UnsLine", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "UnsArea", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "Tag", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "ScriptedAlarm", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "Script", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "PollGroup", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "NodeAcl", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "Namespace", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "Equipment", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "DriverInstance", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.AddColumn( name: "RowVersion", table: "Device", type: "rowversion", rowVersion: true, nullable: false, defaultValue: new byte[0]); migrationBuilder.CreateTable( name: "ConfigEdit", columns: table => new { EditId = table.Column(type: "uniqueidentifier", nullable: false, defaultValueSql: "NEWSEQUENTIALID()"), EntityType = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), EntityId = table.Column(type: "uniqueidentifier", nullable: false), FieldsJson = table.Column(type: "nvarchar(max)", nullable: false), ExecutionId = table.Column(type: "uniqueidentifier", nullable: true), EditedBy = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), EditedAtUtc = table.Column(type: "datetime2(3)", nullable: false, defaultValueSql: "SYSUTCDATETIME()"), SourceNode = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ConfigEdit", x => x.EditId); table.CheckConstraint("CK_ConfigEdit_FieldsJson_IsJson", "ISJSON(FieldsJson) = 1"); }); migrationBuilder.CreateTable( name: "DataProtectionKeys", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), FriendlyName = table.Column(type: "nvarchar(max)", nullable: true), Xml = table.Column(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_DataProtectionKeys", x => x.Id); }); migrationBuilder.CreateTable( name: "Deployment", columns: table => new { DeploymentId = table.Column(type: "uniqueidentifier", nullable: false, defaultValueSql: "NEWSEQUENTIALID()"), RevisionHash = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), Status = table.Column(type: "int", nullable: false), CreatedBy = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), CreatedAtUtc = table.Column(type: "datetime2(3)", nullable: false, defaultValueSql: "SYSUTCDATETIME()"), ArtifactBlob = table.Column(type: "varbinary(max)", nullable: false), RowVersion = table.Column(type: "rowversion", rowVersion: true, nullable: false), FailureReason = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), SealedAtUtc = table.Column(type: "datetime2(3)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Deployment", x => x.DeploymentId); }); migrationBuilder.CreateTable( name: "NodeDeploymentState", columns: table => new { NodeId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), DeploymentId = table.Column(type: "uniqueidentifier", nullable: false), Status = table.Column(type: "int", nullable: false), StartedAtUtc = table.Column(type: "datetime2(3)", nullable: false, defaultValueSql: "SYSUTCDATETIME()"), AppliedAtUtc = table.Column(type: "datetime2(3)", nullable: true), FailureReason = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), RowVersion = table.Column(type: "rowversion", rowVersion: true, nullable: false) }, constraints: table => { table.PrimaryKey("PK_NodeDeploymentState", x => new { x.NodeId, x.DeploymentId }); table.ForeignKey( name: "FK_NodeDeploymentState_ClusterNode_NodeId", column: x => x.NodeId, principalTable: "ClusterNode", principalColumn: "NodeId", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_NodeDeploymentState_Deployment_DeploymentId", column: x => x.DeploymentId, principalTable: "Deployment", principalColumn: "DeploymentId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_VirtualTag_Script", table: "VirtualTag", column: "ScriptId"); migrationBuilder.CreateIndex( name: "UX_VirtualTag_EquipmentPath", table: "VirtualTag", columns: new[] { "EquipmentId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_VirtualTag_LogicalId", table: "VirtualTag", column: "VirtualTagId", unique: true, filter: "[VirtualTagId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_UnsLine_Area", table: "UnsLine", column: "UnsAreaId"); migrationBuilder.CreateIndex( name: "UX_UnsLine_AreaName", table: "UnsLine", columns: new[] { "UnsAreaId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_UnsLine_LogicalId", table: "UnsLine", column: "UnsLineId", unique: true, filter: "[UnsLineId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_UnsArea_ClusterName", table: "UnsArea", columns: new[] { "ClusterId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_UnsArea_LogicalId", table: "UnsArea", column: "UnsAreaId", unique: true, filter: "[UnsAreaId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Tag_Driver_Device", table: "Tag", columns: new[] { "DriverInstanceId", "DeviceId" }); migrationBuilder.CreateIndex( name: "IX_Tag_Equipment", table: "Tag", column: "EquipmentId", filter: "[EquipmentId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Tag_EquipmentPath", table: "Tag", columns: new[] { "EquipmentId", "Name" }, unique: true, filter: "[EquipmentId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Tag_FolderPath", table: "Tag", columns: new[] { "DriverInstanceId", "FolderPath", "Name" }, unique: true, filter: "[EquipmentId] IS NULL"); migrationBuilder.CreateIndex( name: "UX_Tag_LogicalId", table: "Tag", column: "TagId", unique: true, filter: "[TagId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_ScriptedAlarm_Script", table: "ScriptedAlarm", column: "PredicateScriptId"); migrationBuilder.CreateIndex( name: "UX_ScriptedAlarm_EquipmentPath", table: "ScriptedAlarm", columns: new[] { "EquipmentId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_ScriptedAlarm_LogicalId", table: "ScriptedAlarm", column: "ScriptedAlarmId", unique: true, filter: "[ScriptedAlarmId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Script_SourceHash", table: "Script", column: "SourceHash"); migrationBuilder.CreateIndex( name: "UX_Script_LogicalId", table: "Script", column: "ScriptId", unique: true, filter: "[ScriptId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_PollGroup_Driver", table: "PollGroup", column: "DriverInstanceId"); migrationBuilder.CreateIndex( name: "UX_PollGroup_LogicalId", table: "PollGroup", column: "PollGroupId", unique: true, filter: "[PollGroupId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_NodeAcl_Cluster", table: "NodeAcl", column: "ClusterId"); migrationBuilder.CreateIndex( name: "IX_NodeAcl_Group", table: "NodeAcl", column: "LdapGroup"); migrationBuilder.CreateIndex( name: "IX_NodeAcl_Scope", table: "NodeAcl", columns: new[] { "ScopeKind", "ScopeId" }, filter: "[ScopeId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_NodeAcl_GroupScope", table: "NodeAcl", columns: new[] { "ClusterId", "LdapGroup", "ScopeKind", "ScopeId" }, unique: true, filter: "[ScopeId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_NodeAcl_LogicalId", table: "NodeAcl", column: "NodeAclId", unique: true, filter: "[NodeAclId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Namespace_Cluster_Kind", table: "Namespace", columns: new[] { "ClusterId", "Kind" }, unique: true); migrationBuilder.CreateIndex( name: "UX_Namespace_LogicalId", table: "Namespace", column: "NamespaceId", unique: true, filter: "[NamespaceId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Namespace_NamespaceUri", table: "Namespace", column: "NamespaceUri", unique: true); migrationBuilder.CreateIndex( name: "IX_Equipment_Driver", table: "Equipment", column: "DriverInstanceId"); migrationBuilder.CreateIndex( name: "IX_Equipment_Line", table: "Equipment", column: "UnsLineId"); migrationBuilder.CreateIndex( name: "IX_Equipment_MachineCode", table: "Equipment", column: "MachineCode"); migrationBuilder.CreateIndex( name: "IX_Equipment_SAPID", table: "Equipment", column: "SAPID", filter: "[SAPID] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Equipment_ZTag", table: "Equipment", column: "ZTag", filter: "[ZTag] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Equipment_LinePath", table: "Equipment", columns: new[] { "UnsLineId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_Equipment_LogicalId", table: "Equipment", column: "EquipmentId", unique: true, filter: "[EquipmentId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Equipment_Uuid", table: "Equipment", column: "EquipmentUuid", unique: true); migrationBuilder.CreateIndex( name: "IX_DriverInstance_Namespace", table: "DriverInstance", column: "NamespaceId"); migrationBuilder.CreateIndex( name: "UX_DriverInstance_LogicalId", table: "DriverInstance", column: "DriverInstanceId", unique: true, filter: "[DriverInstanceId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Device_Driver", table: "Device", column: "DriverInstanceId"); migrationBuilder.CreateIndex( name: "UX_Device_LogicalId", table: "Device", column: "DeviceId", unique: true, filter: "[DeviceId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_ClusterNode_ClusterId", table: "ClusterNode", column: "ClusterId"); migrationBuilder.CreateIndex( name: "IX_ConfigEdit_EditedAt", table: "ConfigEdit", column: "EditedAtUtc"); migrationBuilder.CreateIndex( name: "IX_ConfigEdit_Entity", table: "ConfigEdit", columns: new[] { "EntityType", "EntityId" }); migrationBuilder.CreateIndex( name: "IX_ConfigEdit_Execution", table: "ConfigEdit", column: "ExecutionId", filter: "[ExecutionId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Deployment_CreatedAt", table: "Deployment", column: "CreatedAtUtc"); migrationBuilder.CreateIndex( name: "IX_Deployment_Status", table: "Deployment", column: "Status"); migrationBuilder.CreateIndex( name: "IX_NodeDeploymentState_Deployment", table: "NodeDeploymentState", column: "DeploymentId"); migrationBuilder.CreateIndex( name: "IX_NodeDeploymentState_Status", table: "NodeDeploymentState", column: "Status"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "ConfigEdit"); migrationBuilder.DropTable( name: "DataProtectionKeys"); migrationBuilder.DropTable( name: "NodeDeploymentState"); migrationBuilder.DropTable( name: "Deployment"); migrationBuilder.DropIndex( name: "IX_VirtualTag_Script", table: "VirtualTag"); migrationBuilder.DropIndex( name: "UX_VirtualTag_EquipmentPath", table: "VirtualTag"); migrationBuilder.DropIndex( name: "UX_VirtualTag_LogicalId", table: "VirtualTag"); migrationBuilder.DropIndex( name: "IX_UnsLine_Area", table: "UnsLine"); migrationBuilder.DropIndex( name: "UX_UnsLine_AreaName", table: "UnsLine"); migrationBuilder.DropIndex( name: "UX_UnsLine_LogicalId", table: "UnsLine"); migrationBuilder.DropIndex( name: "UX_UnsArea_ClusterName", table: "UnsArea"); migrationBuilder.DropIndex( name: "UX_UnsArea_LogicalId", table: "UnsArea"); migrationBuilder.DropIndex( name: "IX_Tag_Driver_Device", table: "Tag"); migrationBuilder.DropIndex( name: "IX_Tag_Equipment", table: "Tag"); migrationBuilder.DropIndex( name: "UX_Tag_EquipmentPath", table: "Tag"); migrationBuilder.DropIndex( name: "UX_Tag_FolderPath", table: "Tag"); migrationBuilder.DropIndex( name: "UX_Tag_LogicalId", table: "Tag"); migrationBuilder.DropIndex( name: "IX_ScriptedAlarm_Script", table: "ScriptedAlarm"); migrationBuilder.DropIndex( name: "UX_ScriptedAlarm_EquipmentPath", table: "ScriptedAlarm"); migrationBuilder.DropIndex( name: "UX_ScriptedAlarm_LogicalId", table: "ScriptedAlarm"); migrationBuilder.DropIndex( name: "IX_Script_SourceHash", table: "Script"); migrationBuilder.DropIndex( name: "UX_Script_LogicalId", table: "Script"); migrationBuilder.DropIndex( name: "IX_PollGroup_Driver", table: "PollGroup"); migrationBuilder.DropIndex( name: "UX_PollGroup_LogicalId", table: "PollGroup"); migrationBuilder.DropIndex( name: "IX_NodeAcl_Cluster", table: "NodeAcl"); migrationBuilder.DropIndex( name: "IX_NodeAcl_Group", table: "NodeAcl"); migrationBuilder.DropIndex( name: "IX_NodeAcl_Scope", table: "NodeAcl"); migrationBuilder.DropIndex( name: "UX_NodeAcl_GroupScope", table: "NodeAcl"); migrationBuilder.DropIndex( name: "UX_NodeAcl_LogicalId", table: "NodeAcl"); migrationBuilder.DropIndex( name: "UX_Namespace_Cluster_Kind", table: "Namespace"); migrationBuilder.DropIndex( name: "UX_Namespace_LogicalId", table: "Namespace"); migrationBuilder.DropIndex( name: "UX_Namespace_NamespaceUri", table: "Namespace"); migrationBuilder.DropIndex( name: "IX_Equipment_Driver", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_Equipment_Line", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_Equipment_MachineCode", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_Equipment_SAPID", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_Equipment_ZTag", table: "Equipment"); migrationBuilder.DropIndex( name: "UX_Equipment_LinePath", table: "Equipment"); migrationBuilder.DropIndex( name: "UX_Equipment_LogicalId", table: "Equipment"); migrationBuilder.DropIndex( name: "UX_Equipment_Uuid", table: "Equipment"); migrationBuilder.DropIndex( name: "IX_DriverInstance_Namespace", table: "DriverInstance"); migrationBuilder.DropIndex( name: "UX_DriverInstance_LogicalId", table: "DriverInstance"); migrationBuilder.DropIndex( name: "IX_Device_Driver", table: "Device"); migrationBuilder.DropIndex( name: "UX_Device_LogicalId", table: "Device"); migrationBuilder.DropIndex( name: "IX_ClusterNode_ClusterId", table: "ClusterNode"); migrationBuilder.DropColumn( name: "RowVersion", table: "VirtualTag"); migrationBuilder.DropColumn( name: "RowVersion", table: "UnsLine"); migrationBuilder.DropColumn( name: "RowVersion", table: "UnsArea"); migrationBuilder.DropColumn( name: "RowVersion", table: "Tag"); migrationBuilder.DropColumn( name: "RowVersion", table: "ScriptedAlarm"); migrationBuilder.DropColumn( name: "RowVersion", table: "Script"); migrationBuilder.DropColumn( name: "RowVersion", table: "PollGroup"); migrationBuilder.DropColumn( name: "RowVersion", table: "NodeAcl"); migrationBuilder.DropColumn( name: "RowVersion", table: "Namespace"); migrationBuilder.DropColumn( name: "RowVersion", table: "Equipment"); migrationBuilder.DropColumn( name: "RowVersion", table: "DriverInstance"); migrationBuilder.DropColumn( name: "RowVersion", table: "Device"); migrationBuilder.RenameIndex( name: "IX_UnsArea_Cluster", table: "UnsArea", newName: "IX_UnsArea_ClusterId"); migrationBuilder.RenameIndex( name: "IX_Namespace_Cluster", table: "Namespace", newName: "IX_Namespace_ClusterId"); migrationBuilder.RenameIndex( name: "IX_DriverInstance_Cluster", table: "DriverInstance", newName: "IX_DriverInstance_ClusterId"); migrationBuilder.AddColumn( name: "GenerationId", table: "VirtualTag", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "UnsLine", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "UnsArea", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "Tag", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "ScriptedAlarm", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "Script", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "PollGroup", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "NodeAcl", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "Namespace", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "Equipment", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "DriverInstance", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "GenerationId", table: "Device", type: "bigint", nullable: false, defaultValue: 0L); migrationBuilder.AddColumn( name: "RedundancyRole", table: "ClusterNode", type: "nvarchar(16)", maxLength: 16, nullable: false, defaultValue: ""); migrationBuilder.CreateTable( name: "ConfigGeneration", columns: table => new { GenerationId = table.Column(type: "bigint", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), ClusterId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), ParentGenerationId = table.Column(type: "bigint", nullable: true), CreatedAt = table.Column(type: "datetime2(3)", nullable: false, defaultValueSql: "SYSUTCDATETIME()"), CreatedBy = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), Notes = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true), PublishedAt = table.Column(type: "datetime2(3)", nullable: true), PublishedBy = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), Status = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ConfigGeneration", x => x.GenerationId); table.ForeignKey( name: "FK_ConfigGeneration_ConfigGeneration_ParentGenerationId", column: x => x.ParentGenerationId, principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_ConfigGeneration_ServerCluster_ClusterId", column: x => x.ClusterId, principalTable: "ServerCluster", principalColumn: "ClusterId", onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateTable( name: "ClusterNodeGenerationState", columns: table => new { NodeId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), CurrentGenerationId = table.Column(type: "bigint", nullable: true), LastAppliedAt = table.Column(type: "datetime2(3)", nullable: true), LastAppliedError = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), LastAppliedStatus = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), LastSeenAt = table.Column(type: "datetime2(3)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_ClusterNodeGenerationState", x => x.NodeId); table.ForeignKey( name: "FK_ClusterNodeGenerationState_ClusterNode_NodeId", column: x => x.NodeId, principalTable: "ClusterNode", principalColumn: "NodeId", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_ClusterNodeGenerationState_ConfigGeneration_CurrentGenerationId", column: x => x.CurrentGenerationId, principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateIndex( name: "IX_VirtualTag_Generation_Script", table: "VirtualTag", columns: new[] { "GenerationId", "ScriptId" }); migrationBuilder.CreateIndex( name: "UX_VirtualTag_Generation_EquipmentPath", table: "VirtualTag", columns: new[] { "GenerationId", "EquipmentId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_VirtualTag_Generation_LogicalId", table: "VirtualTag", columns: new[] { "GenerationId", "VirtualTagId" }, unique: true, filter: "[VirtualTagId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_UnsLine_Generation_Area", table: "UnsLine", columns: new[] { "GenerationId", "UnsAreaId" }); migrationBuilder.CreateIndex( name: "UX_UnsLine_Generation_AreaName", table: "UnsLine", columns: new[] { "GenerationId", "UnsAreaId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_UnsLine_Generation_LogicalId", table: "UnsLine", columns: new[] { "GenerationId", "UnsLineId" }, unique: true, filter: "[UnsLineId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_UnsArea_Generation_Cluster", table: "UnsArea", columns: new[] { "GenerationId", "ClusterId" }); migrationBuilder.CreateIndex( name: "UX_UnsArea_Generation_ClusterName", table: "UnsArea", columns: new[] { "GenerationId", "ClusterId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_UnsArea_Generation_LogicalId", table: "UnsArea", columns: new[] { "GenerationId", "UnsAreaId" }, unique: true, filter: "[UnsAreaId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Tag_Generation_Driver_Device", table: "Tag", columns: new[] { "GenerationId", "DriverInstanceId", "DeviceId" }); migrationBuilder.CreateIndex( name: "IX_Tag_Generation_Equipment", table: "Tag", columns: new[] { "GenerationId", "EquipmentId" }, filter: "[EquipmentId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Tag_Generation_EquipmentPath", table: "Tag", columns: new[] { "GenerationId", "EquipmentId", "Name" }, unique: true, filter: "[EquipmentId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Tag_Generation_FolderPath", table: "Tag", columns: new[] { "GenerationId", "DriverInstanceId", "FolderPath", "Name" }, unique: true, filter: "[EquipmentId] IS NULL"); migrationBuilder.CreateIndex( name: "UX_Tag_Generation_LogicalId", table: "Tag", columns: new[] { "GenerationId", "TagId" }, unique: true, filter: "[TagId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_ScriptedAlarm_Generation_Script", table: "ScriptedAlarm", columns: new[] { "GenerationId", "PredicateScriptId" }); migrationBuilder.CreateIndex( name: "UX_ScriptedAlarm_Generation_EquipmentPath", table: "ScriptedAlarm", columns: new[] { "GenerationId", "EquipmentId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_ScriptedAlarm_Generation_LogicalId", table: "ScriptedAlarm", columns: new[] { "GenerationId", "ScriptedAlarmId" }, unique: true, filter: "[ScriptedAlarmId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Script_Generation_SourceHash", table: "Script", columns: new[] { "GenerationId", "SourceHash" }); migrationBuilder.CreateIndex( name: "UX_Script_Generation_LogicalId", table: "Script", columns: new[] { "GenerationId", "ScriptId" }, unique: true, filter: "[ScriptId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_PollGroup_Generation_Driver", table: "PollGroup", columns: new[] { "GenerationId", "DriverInstanceId" }); migrationBuilder.CreateIndex( name: "UX_PollGroup_Generation_LogicalId", table: "PollGroup", columns: new[] { "GenerationId", "PollGroupId" }, unique: true, filter: "[PollGroupId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_NodeAcl_Generation_Cluster", table: "NodeAcl", columns: new[] { "GenerationId", "ClusterId" }); migrationBuilder.CreateIndex( name: "IX_NodeAcl_Generation_Group", table: "NodeAcl", columns: new[] { "GenerationId", "LdapGroup" }); migrationBuilder.CreateIndex( name: "IX_NodeAcl_Generation_Scope", table: "NodeAcl", columns: new[] { "GenerationId", "ScopeKind", "ScopeId" }, filter: "[ScopeId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_NodeAcl_Generation_GroupScope", table: "NodeAcl", columns: new[] { "GenerationId", "ClusterId", "LdapGroup", "ScopeKind", "ScopeId" }, unique: true, filter: "[ScopeId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_NodeAcl_Generation_LogicalId", table: "NodeAcl", columns: new[] { "GenerationId", "NodeAclId" }, unique: true, filter: "[NodeAclId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Namespace_Generation_Cluster", table: "Namespace", columns: new[] { "GenerationId", "ClusterId" }); migrationBuilder.CreateIndex( name: "UX_Namespace_Generation_Cluster_Kind", table: "Namespace", columns: new[] { "GenerationId", "ClusterId", "Kind" }, unique: true); migrationBuilder.CreateIndex( name: "UX_Namespace_Generation_LogicalId", table: "Namespace", columns: new[] { "GenerationId", "NamespaceId" }, unique: true, filter: "[NamespaceId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Namespace_Generation_LogicalId_Cluster", table: "Namespace", columns: new[] { "GenerationId", "NamespaceId", "ClusterId" }, unique: true, filter: "[NamespaceId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Namespace_Generation_NamespaceUri", table: "Namespace", columns: new[] { "GenerationId", "NamespaceUri" }, unique: true); migrationBuilder.CreateIndex( name: "IX_Equipment_Generation_Driver", table: "Equipment", columns: new[] { "GenerationId", "DriverInstanceId" }); migrationBuilder.CreateIndex( name: "IX_Equipment_Generation_Line", table: "Equipment", columns: new[] { "GenerationId", "UnsLineId" }); migrationBuilder.CreateIndex( name: "IX_Equipment_Generation_MachineCode", table: "Equipment", columns: new[] { "GenerationId", "MachineCode" }); migrationBuilder.CreateIndex( name: "IX_Equipment_Generation_SAPID", table: "Equipment", columns: new[] { "GenerationId", "SAPID" }, filter: "[SAPID] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Equipment_Generation_ZTag", table: "Equipment", columns: new[] { "GenerationId", "ZTag" }, filter: "[ZTag] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Equipment_Generation_LinePath", table: "Equipment", columns: new[] { "GenerationId", "UnsLineId", "Name" }, unique: true); migrationBuilder.CreateIndex( name: "UX_Equipment_Generation_LogicalId", table: "Equipment", columns: new[] { "GenerationId", "EquipmentId" }, unique: true, filter: "[EquipmentId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_Equipment_Generation_Uuid", table: "Equipment", columns: new[] { "GenerationId", "EquipmentUuid" }, unique: true); migrationBuilder.CreateIndex( name: "IX_DriverInstance_Generation_Cluster", table: "DriverInstance", columns: new[] { "GenerationId", "ClusterId" }); migrationBuilder.CreateIndex( name: "IX_DriverInstance_Generation_Namespace", table: "DriverInstance", columns: new[] { "GenerationId", "NamespaceId" }); migrationBuilder.CreateIndex( name: "UX_DriverInstance_Generation_LogicalId", table: "DriverInstance", columns: new[] { "GenerationId", "DriverInstanceId" }, unique: true, filter: "[DriverInstanceId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Device_Generation_Driver", table: "Device", columns: new[] { "GenerationId", "DriverInstanceId" }); migrationBuilder.CreateIndex( name: "UX_Device_Generation_LogicalId", table: "Device", columns: new[] { "GenerationId", "DeviceId" }, unique: true, filter: "[DeviceId] IS NOT NULL"); migrationBuilder.CreateIndex( name: "UX_ClusterNode_Primary_Per_Cluster", table: "ClusterNode", column: "ClusterId", unique: true, filter: "[RedundancyRole] = 'Primary'"); migrationBuilder.CreateIndex( name: "IX_ClusterNodeGenerationState_Generation", table: "ClusterNodeGenerationState", column: "CurrentGenerationId"); migrationBuilder.CreateIndex( name: "IX_ConfigGeneration_Cluster_Published", table: "ConfigGeneration", columns: new[] { "ClusterId", "Status", "GenerationId" }, descending: new[] { false, false, true }) .Annotation("SqlServer:Include", new[] { "PublishedAt" }); migrationBuilder.CreateIndex( name: "IX_ConfigGeneration_ParentGenerationId", table: "ConfigGeneration", column: "ParentGenerationId"); migrationBuilder.CreateIndex( name: "UX_ConfigGeneration_Draft_Per_Cluster", table: "ConfigGeneration", column: "ClusterId", unique: true, filter: "[Status] = 'Draft'"); migrationBuilder.AddForeignKey( name: "FK_Device_ConfigGeneration_GenerationId", table: "Device", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_DriverInstance_ConfigGeneration_GenerationId", table: "DriverInstance", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_Equipment_ConfigGeneration_GenerationId", table: "Equipment", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_Namespace_ConfigGeneration_GenerationId", table: "Namespace", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_NodeAcl_ConfigGeneration_GenerationId", table: "NodeAcl", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_PollGroup_ConfigGeneration_GenerationId", table: "PollGroup", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_Script_ConfigGeneration_GenerationId", table: "Script", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_ScriptedAlarm_ConfigGeneration_GenerationId", table: "ScriptedAlarm", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_Tag_ConfigGeneration_GenerationId", table: "Tag", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_UnsArea_ConfigGeneration_GenerationId", table: "UnsArea", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_UnsLine_ConfigGeneration_GenerationId", table: "UnsLine", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); migrationBuilder.AddForeignKey( name: "FK_VirtualTag_ConfigGeneration_GenerationId", table: "VirtualTag", column: "GenerationId", principalTable: "ConfigGeneration", principalColumn: "GenerationId", onDelete: ReferentialAction.Restrict); } } }