using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Persistence.Database.Postgres.Migrations { /// public partial class TechMessageMigration : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "ADSystem", columns: table => new { SystemId = table.Column(type: "uuid", nullable: false, comment: "Id системы автобурения"), Name = table.Column(type: "varchar(256)", nullable: false, comment: "Наименование системы автобурения"), Description = table.Column(type: "text", nullable: true, comment: "Описание системы автобурения") }, constraints: table => { table.PrimaryKey("PK_ADSystem", x => x.SystemId); }); migrationBuilder.CreateTable( name: "TimestampedSets", columns: table => new { IdDiscriminator = table.Column(type: "uuid", nullable: false, comment: "Дискриминатор ссылка на тип сохраняемых данных"), Timestamp = table.Column(type: "timestamp with time zone", nullable: false, comment: "Отметка времени, строго в UTC"), Set = table.Column(type: "jsonb", nullable: false, comment: "Набор сохраняемых данных") }, constraints: table => { table.PrimaryKey("PK_TimestampedSets", x => new { x.IdDiscriminator, x.Timestamp }); }, comment: "Общая таблица данных временных рядов"); migrationBuilder.CreateTable( name: "TechMessage", columns: table => new { EventId = table.Column(type: "uuid", nullable: false, comment: "Id события"), ImportantId = table.Column(type: "integer", nullable: false, comment: "Id Категории важности"), OccurrenceDate = table.Column(type: "timestamp with time zone", nullable: false, comment: "Дата возникновения"), Depth = table.Column(type: "double precision", nullable: true, comment: "Глубина забоя"), MessageText = table.Column(type: "varchar(512)", nullable: false, comment: "Текст сообщения"), SystemId = table.Column(type: "uuid", nullable: false, comment: "Id системы автобурения, к которой относится сообщение"), UserId = table.Column(type: "uuid", nullable: false, comment: "Id пользователя за пультом бурильщика") }, constraints: table => { table.PrimaryKey("PK_TechMessage", x => x.EventId); table.ForeignKey( name: "FK_TechMessage_ADSystem_SystemId", column: x => x.SystemId, principalTable: "ADSystem", principalColumn: "SystemId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_TechMessage_SystemId", table: "TechMessage", column: "SystemId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "TechMessage"); migrationBuilder.DropTable( name: "TimestampedSets"); migrationBuilder.DropTable( name: "ADSystem"); } } }