using System; using Microsoft.EntityFrameworkCore.Migrations; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable #pragma warning disable CA1814 // Prefer jagged arrays over multidimensional namespace PARR.DAL.Migrations { /// public partial class RemoveOldTables : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "AppInWorkInWorkGroups"); migrationBuilder.DropTable( name: "ApplicationsInHost"); migrationBuilder.DropTable( name: "ApplicationsInWorks"); migrationBuilder.DropTable( name: "Hosts"); migrationBuilder.DropTable( name: "Applications"); migrationBuilder.DropTable( name: "EkStatuses"); migrationBuilder.DropTable( name: "WorkGroups"); migrationBuilder.DropTable( name: "ApplicationTypes"); migrationBuilder.DropTable( name: "ResponseAreas"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "ApplicationTypes", columns: table => new { Id = table.Column(type: "uuid", nullable: false), DateCreated = table.Column(type: "timestamp with time zone", nullable: false), DateModified = table.Column(type: "timestamp with time zone", nullable: true), Description = table.Column(type: "text", nullable: true), Name = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApplicationTypes", x => x.Id); }); migrationBuilder.CreateTable( name: "EkStatuses", columns: table => new { Code = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EkStatuses", x => x.Code); }); migrationBuilder.CreateTable( name: "ResponseAreas", columns: table => new { Code = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ResponseAreas", x => x.Code); }); migrationBuilder.CreateTable( name: "Applications", columns: table => new { Id = table.Column(type: "uuid", nullable: false), ApplicationTypeId = table.Column(type: "uuid", nullable: false), DateCreated = table.Column(type: "timestamp with time zone", nullable: false), DateModified = table.Column(type: "timestamp with time zone", nullable: true), Name = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Applications", x => x.Id); table.ForeignKey( name: "FK_Applications_ApplicationTypes_ApplicationTypeId", column: x => x.ApplicationTypeId, principalTable: "ApplicationTypes", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "WorkGroups", columns: table => new { Id = table.Column(type: "uuid", nullable: false), ResponseAreaCode = table.Column(type: "integer", nullable: false), DateCreated = table.Column(type: "timestamp with time zone", nullable: false), Name = table.Column(type: "text", nullable: false) }, constraints: table => { table.PrimaryKey("PK_WorkGroups", x => x.Id); table.ForeignKey( name: "FK_WorkGroups_ResponseAreas_ResponseAreaCode", column: x => x.ResponseAreaCode, principalTable: "ResponseAreas", principalColumn: "Code", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApplicationsInWorks", columns: table => new { Id = table.Column(type: "uuid", nullable: false), ApplicationId = table.Column(type: "uuid", nullable: false), AgentName = table.Column(type: "text", nullable: true), AgentScript = table.Column(type: "text", nullable: true), AgentTimeOutSec = table.Column(type: "integer", nullable: true), DateCreated = table.Column(type: "timestamp with time zone", nullable: false), DateModified = table.Column(type: "timestamp with time zone", nullable: true), FullDescription = table.Column(type: "text", nullable: false), IsAgent = table.Column(type: "boolean", nullable: false), IsAutoDistributionEnabled = table.Column(type: "boolean", nullable: false), ReferenceDate = table.Column(type: "timestamp with time zone", nullable: false), ShortDescription = table.Column(type: "text", nullable: false), Solution = table.Column(type: "text", nullable: false), TemplateDuration = table.Column(type: "text", nullable: false), WorkId = table.Column(type: "uuid", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApplicationsInWorks", x => x.Id); table.ForeignKey( name: "FK_ApplicationsInWorks_Applications_ApplicationId", column: x => x.ApplicationId, principalTable: "Applications", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Hosts", columns: table => new { Id = table.Column(type: "uuid", nullable: false), EkStatusCode = table.Column(type: "integer", nullable: false), ResponseAreaCode = table.Column(type: "integer", nullable: false), WorkGroupId = table.Column(type: "uuid", nullable: true), DateCreated = table.Column(type: "timestamp with time zone", nullable: false), DateModified = table.Column(type: "timestamp with time zone", nullable: true), Ek = table.Column(type: "text", nullable: false), IP = table.Column(type: "text", nullable: true), LastLogon = table.Column(type: "timestamp with time zone", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Hosts", x => x.Id); table.ForeignKey( name: "FK_Hosts_EkStatuses_EkStatusCode", column: x => x.EkStatusCode, principalTable: "EkStatuses", principalColumn: "Code", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Hosts_ResponseAreas_ResponseAreaCode", column: x => x.ResponseAreaCode, principalTable: "ResponseAreas", principalColumn: "Code", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Hosts_WorkGroups_WorkGroupId", column: x => x.WorkGroupId, principalTable: "WorkGroups", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "AppInWorkInWorkGroups", columns: table => new { ApplicationsInWorkId = table.Column(type: "uuid", nullable: false), WorkGroupId = table.Column(type: "uuid", nullable: false) }, constraints: table => { table.PrimaryKey("PK_AppInWorkInWorkGroups", x => new { x.ApplicationsInWorkId, x.WorkGroupId }); table.ForeignKey( name: "FK_AppInWorkInWorkGroups_ApplicationsInWorks_ApplicationsInWor~", column: x => x.ApplicationsInWorkId, principalTable: "ApplicationsInWorks", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_AppInWorkInWorkGroups_WorkGroups_WorkGroupId", column: x => x.WorkGroupId, principalTable: "WorkGroups", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApplicationsInHost", columns: table => new { Id = table.Column(type: "uuid", nullable: false), ApplicationId = table.Column(type: "uuid", nullable: false), HostId = table.Column(type: "uuid", nullable: false), DateCreated = table.Column(type: "timestamp with time zone", nullable: false), DateModified = table.Column(type: "timestamp with time zone", nullable: true) }, constraints: table => { table.PrimaryKey("PK_ApplicationsInHost", x => x.Id); table.ForeignKey( name: "FK_ApplicationsInHost_Applications_ApplicationId", column: x => x.ApplicationId, principalTable: "Applications", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ApplicationsInHost_Hosts_HostId", column: x => x.HostId, principalTable: "Hosts", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.InsertData( table: "ApplicationTypes", columns: new[] { "Id", "DateCreated", "DateModified", "Description", "Name" }, values: new object[,] { { new Guid("0bd96f9b-d36b-4dfb-bd8a-9c356bc6912b"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "ИБ", "IB" }, { new Guid("32c28386-6f13-4f7b-8508-be165b7fabdb"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Сервер приложений", "APP" }, { new Guid("4466148b-510d-4423-a58f-ce878152ff01"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Инфраструктура", "SI" }, { new Guid("725a96db-358e-489b-a7c9-a84b06ec15df"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "Мониторинг", "SM" }, { new Guid("749f4c34-b883-4f28-90dd-c161dd3c4270"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "ЦК БС", "CKBS" }, { new Guid("7848a96c-cdee-48c1-a786-de9cb889723a"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "ОС", "OS" }, { new Guid("aae2636f-b93a-42dc-873e-0764a90a0a40"), new DateTimeOffset(new DateTime(2023, 5, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), null, "СУБД", "DB" } }); migrationBuilder.InsertData( table: "EkStatuses", columns: new[] { "Code", "Name" }, values: new object[,] { { 1, "1-Новый" }, { 2, "2-Подготовка к эксплуатации" }, { 3, "3-В эксплуатации" }, { 4, "4-В ремонте" }, { 5, "5-В резерве" }, { 6, "6-Выведен из эксплуатации" }, { 7, "7-Тестовый" }, { 9, "9-В разработке" } }); migrationBuilder.InsertData( table: "ResponseAreas", columns: new[] { "Code", "Name" }, values: new object[,] { { 1, "01-ОКТ" }, { 10, "10-КЛГ" }, { 17, "17-МСК" }, { 24, "24-ГОР" }, { 28, "28-СЕВ" }, { 51, "51-СКВ" }, { 58, "58-ЮВСТ" }, { 61, "61-ПРИВ" }, { 63, "63-КБШ" }, { 76, "76-СВРД" }, { 80, "80-ЮУР" }, { 83, "83-ЗСИБ" }, { 88, "88-КРАСН" }, { 92, "92-ВСИБ" }, { 94, "94-ЗАБ" }, { 96, "96-ДВС" }, { 99, "00-ГВЦ" }, { 100, "ОБЩЕЕ" }, { 110, "ВП" }, { 111, "ОСК" } }); migrationBuilder.CreateIndex( name: "IX_AppInWorkInWorkGroups_WorkGroupId", table: "AppInWorkInWorkGroups", column: "WorkGroupId"); migrationBuilder.CreateIndex( name: "IX_Applications_ApplicationTypeId", table: "Applications", column: "ApplicationTypeId"); migrationBuilder.CreateIndex( name: "IX_Applications_Name_ApplicationTypeId", table: "Applications", columns: new[] { "Name", "ApplicationTypeId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_ApplicationsInHost_ApplicationId", table: "ApplicationsInHost", column: "ApplicationId"); migrationBuilder.CreateIndex( name: "IX_ApplicationsInHost_HostId", table: "ApplicationsInHost", column: "HostId"); migrationBuilder.CreateIndex( name: "IX_ApplicationsInWorks_ApplicationId", table: "ApplicationsInWorks", column: "ApplicationId"); migrationBuilder.CreateIndex( name: "IX_ApplicationsInWorks_WorkId_ApplicationId", table: "ApplicationsInWorks", columns: new[] { "WorkId", "ApplicationId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_Hosts_Ek", table: "Hosts", column: "Ek", unique: true); migrationBuilder.CreateIndex( name: "IX_Hosts_EkStatusCode", table: "Hosts", column: "EkStatusCode"); migrationBuilder.CreateIndex( name: "IX_Hosts_IP", table: "Hosts", column: "IP"); migrationBuilder.CreateIndex( name: "IX_Hosts_ResponseAreaCode", table: "Hosts", column: "ResponseAreaCode"); migrationBuilder.CreateIndex( name: "IX_Hosts_WorkGroupId", table: "Hosts", column: "WorkGroupId"); migrationBuilder.CreateIndex( name: "IX_WorkGroups_ResponseAreaCode", table: "WorkGroups", column: "ResponseAreaCode"); } } }