using System; using Microsoft.EntityFrameworkCore.Migrations; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace UniversityDataBaseImplemet.Migrations { /// public partial class init : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "User", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Login = table.Column(type: "text", nullable: false), Password = table.Column(type: "text", nullable: false), Role = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_User", x => x.Id); }); migrationBuilder.CreateTable( name: "Documents", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false), Date = table.Column(type: "timestamp with time zone", nullable: false), UserId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Documents", x => x.Id); table.ForeignKey( name: "FK_Documents_User_UserId", column: x => x.UserId, principalTable: "User", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "EducationGroups", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), NumberOfStudent = table.Column(type: "integer", nullable: false), Name = table.Column(type: "text", nullable: false), UserId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EducationGroups", x => x.Id); table.ForeignKey( name: "FK_EducationGroups_User_UserId", column: x => x.UserId, principalTable: "User", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "EducationStatuses", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false), UserId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EducationStatuses", x => x.Id); table.ForeignKey( name: "FK_EducationStatuses_User_UserId", column: x => x.UserId, principalTable: "User", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "Streams", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false), Course = table.Column(type: "integer", nullable: false), UserId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Streams", x => x.Id); table.ForeignKey( name: "FK_Streams_User_UserId", column: x => x.UserId, principalTable: "User", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "EducationGroupsDocuments", columns: table => new { EducationGroupId = table.Column(type: "integer", nullable: false), DocumentId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EducationGroupsDocuments", x => new { x.EducationGroupId, x.DocumentId }); table.ForeignKey( name: "FK_EducationGroupsDocuments_Documents_DocumentId", column: x => x.DocumentId, principalTable: "Documents", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_EducationGroupsDocuments_EducationGroups_EducationGroupId", column: x => x.EducationGroupId, principalTable: "EducationGroups", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Students", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false), Surname = table.Column(type: "text", nullable: false), DateOfBirth = table.Column(type: "timestamp with time zone", nullable: false), DateOfAddmission = table.Column(type: "timestamp with time zone", nullable: false), StudentCard = table.Column(type: "integer", nullable: false), EducationStatusId = table.Column(type: "integer", nullable: true), UserId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Students", x => x.Id); table.ForeignKey( name: "FK_Students_EducationStatuses_EducationStatusId", column: x => x.EducationStatusId, principalTable: "EducationStatuses", principalColumn: "Id"); table.ForeignKey( name: "FK_Students_User_UserId", column: x => x.UserId, principalTable: "User", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "Discipline", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false), UserId = table.Column(type: "integer", nullable: false), StreamId = table.Column(type: "integer", nullable: false), Hours = table.Column(type: "integer", nullable: false), MarkType = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Discipline", x => x.Id); table.ForeignKey( name: "FK_Discipline_Streams_StreamId", column: x => x.StreamId, principalTable: "Streams", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Discipline_User_UserId", column: x => x.UserId, principalTable: "User", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "EducationGroupsStreams", columns: table => new { EducationGroupId = table.Column(type: "integer", nullable: false), StreamId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EducationGroupsStreams", x => new { x.EducationGroupId, x.StreamId }); table.ForeignKey( name: "FK_EducationGroupsStreams_EducationGroups_EducationGroupId", column: x => x.EducationGroupId, principalTable: "EducationGroups", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_EducationGroupsStreams_Streams_StreamId", column: x => x.StreamId, principalTable: "Streams", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "EducationGroupViewModel", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Name = table.Column(type: "text", nullable: false), NumberOfStudent = table.Column(type: "integer", nullable: false), UserId = table.Column(type: "integer", nullable: false), StreamId = table.Column(type: "integer", nullable: true) }, constraints: table => { table.PrimaryKey("PK_EducationGroupViewModel", x => x.Id); table.ForeignKey( name: "FK_EducationGroupViewModel_Streams_StreamId", column: x => x.StreamId, principalTable: "Streams", principalColumn: "Id"); }); migrationBuilder.CreateTable( name: "StudentDocuments", columns: table => new { StudentId = table.Column(type: "integer", nullable: false), DocumentId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_StudentDocuments", x => new { x.StudentId, x.DocumentId }); table.ForeignKey( name: "FK_StudentDocuments_Documents_DocumentId", column: x => x.DocumentId, principalTable: "Documents", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_StudentDocuments_Students_StudentId", column: x => x.StudentId, principalTable: "Students", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "StudentStreams", columns: table => new { StudentId = table.Column(type: "integer", nullable: false), StreamId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_StudentStreams", x => new { x.StudentId, x.StreamId }); table.ForeignKey( name: "FK_StudentStreams_Streams_StreamId", column: x => x.StreamId, principalTable: "Streams", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_StudentStreams_Students_StudentId", column: x => x.StudentId, principalTable: "Students", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_Discipline_StreamId", table: "Discipline", column: "StreamId"); migrationBuilder.CreateIndex( name: "IX_Discipline_UserId", table: "Discipline", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_Documents_UserId", table: "Documents", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_EducationGroups_UserId", table: "EducationGroups", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_EducationGroupsDocuments_DocumentId", table: "EducationGroupsDocuments", column: "DocumentId"); migrationBuilder.CreateIndex( name: "IX_EducationGroupsStreams_StreamId", table: "EducationGroupsStreams", column: "StreamId"); migrationBuilder.CreateIndex( name: "IX_EducationGroupViewModel_StreamId", table: "EducationGroupViewModel", column: "StreamId"); migrationBuilder.CreateIndex( name: "IX_EducationStatuses_UserId", table: "EducationStatuses", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_Streams_UserId", table: "Streams", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_StudentDocuments_DocumentId", table: "StudentDocuments", column: "DocumentId"); migrationBuilder.CreateIndex( name: "IX_Students_EducationStatusId", table: "Students", column: "EducationStatusId"); migrationBuilder.CreateIndex( name: "IX_Students_UserId", table: "Students", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_StudentStreams_StreamId", table: "StudentStreams", column: "StreamId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Discipline"); migrationBuilder.DropTable( name: "EducationGroupsDocuments"); migrationBuilder.DropTable( name: "EducationGroupsStreams"); migrationBuilder.DropTable( name: "EducationGroupViewModel"); migrationBuilder.DropTable( name: "StudentDocuments"); migrationBuilder.DropTable( name: "StudentStreams"); migrationBuilder.DropTable( name: "EducationGroups"); migrationBuilder.DropTable( name: "Documents"); migrationBuilder.DropTable( name: "Streams"); migrationBuilder.DropTable( name: "Students"); migrationBuilder.DropTable( name: "EducationStatuses"); migrationBuilder.DropTable( name: "User"); } } }