2023-04-05 22:23:31 +04:00
|
|
|
|
using System;
|
|
|
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
|
|
|
|
|
|
|
|
#nullable disable
|
|
|
|
|
|
|
|
|
|
namespace SchoolAgainStudyDataBaseImplements.Migrations
|
|
|
|
|
{
|
|
|
|
|
/// <inheritdoc />
|
2023-05-17 21:29:39 +04:00
|
|
|
|
public partial class NewMigration : Migration
|
2023-04-05 22:23:31 +04:00
|
|
|
|
{
|
|
|
|
|
/// <inheritdoc />
|
|
|
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
|
|
|
{
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Students",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Name = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
Class = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
Email = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
Login = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
Password = table.Column<string>(type: "text", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Students", x => x.Id);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Teachers",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Name = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
Post = table.Column<string>(type: "text", nullable: false),
|
2023-05-17 21:29:39 +04:00
|
|
|
|
Email = table.Column<string>(type: "text", nullable: false),
|
2023-04-05 22:23:31 +04:00
|
|
|
|
Login = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
Password = table.Column<string>(type: "text", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Teachers", x => x.Id);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Interests",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Title = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
Description = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
StudentId = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Interests", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Interests_Students_StudentId",
|
|
|
|
|
column: x => x.StudentId,
|
|
|
|
|
principalTable: "Students",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Products",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Title = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
Description = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
DateCreate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
|
|
|
StudentId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
StudentName = table.Column<string>(type: "text", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Products", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Products_Students_StudentId",
|
|
|
|
|
column: x => x.StudentId,
|
|
|
|
|
principalTable: "Students",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Materials",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Title = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
SphereUse = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
TeacherId = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Materials", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Materials_Teachers_TeacherId",
|
|
|
|
|
column: x => x.TeacherId,
|
|
|
|
|
principalTable: "Teachers",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Tasks",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Title = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
DateIssue = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
|
|
|
DateDelivery = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
|
|
|
TeacherId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
TeacherName = table.Column<string>(type: "text", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Tasks", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Tasks_Teachers_TeacherId",
|
|
|
|
|
column: x => x.TeacherId,
|
|
|
|
|
principalTable: "Teachers",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Lessons",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Title = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
DateEvent = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
|
|
|
ProductId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
ProductName = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
TeacherId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
TeacherName = table.Column<string>(type: "text", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Lessons", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Lessons_Products_ProductId",
|
|
|
|
|
column: x => x.ProductId,
|
|
|
|
|
principalTable: "Products",
|
|
|
|
|
principalColumn: "Id",
|
2023-05-17 22:22:06 +04:00
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
2023-04-05 22:23:31 +04:00
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Lessons_Teachers_TeacherId",
|
|
|
|
|
column: x => x.TeacherId,
|
|
|
|
|
principalTable: "Teachers",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "ProductInterests",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
ProductId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
InterestId = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_ProductInterests", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_ProductInterests_Interests_InterestId",
|
|
|
|
|
column: x => x.InterestId,
|
|
|
|
|
principalTable: "Interests",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_ProductInterests_Products_ProductId",
|
|
|
|
|
column: x => x.ProductId,
|
|
|
|
|
principalTable: "Products",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Diys",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Title = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
Description = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
DateCreate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
|
|
|
TaskId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
TaskName = table.Column<string>(type: "text", nullable: false),
|
|
|
|
|
StudentId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
StudentName = table.Column<string>(type: "text", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Diys", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Diys_Students_StudentId",
|
|
|
|
|
column: x => x.StudentId,
|
|
|
|
|
principalTable: "Students",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Diys_Tasks_TaskId",
|
|
|
|
|
column: x => x.TaskId,
|
|
|
|
|
principalTable: "Tasks",
|
|
|
|
|
principalColumn: "Id",
|
2023-05-17 22:22:06 +04:00
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
2023-04-05 22:23:31 +04:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "TaskMaterials",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
TaskId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
MaterialId = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_TaskMaterials", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_TaskMaterials_Materials_MaterialId",
|
|
|
|
|
column: x => x.MaterialId,
|
|
|
|
|
principalTable: "Materials",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_TaskMaterials_Tasks_TaskId",
|
|
|
|
|
column: x => x.TaskId,
|
|
|
|
|
principalTable: "Tasks",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "LessonMaterials",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
LessonId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
MaterialId = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_LessonMaterials", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_LessonMaterials_Lessons_LessonId",
|
|
|
|
|
column: x => x.LessonId,
|
|
|
|
|
principalTable: "Lessons",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_LessonMaterials_Materials_MaterialId",
|
|
|
|
|
column: x => x.MaterialId,
|
|
|
|
|
principalTable: "Materials",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "DiyInterests",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
DiyId = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
InterestId = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_DiyInterests", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_DiyInterests_Diys_DiyId",
|
|
|
|
|
column: x => x.DiyId,
|
|
|
|
|
principalTable: "Diys",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_DiyInterests_Interests_InterestId",
|
|
|
|
|
column: x => x.InterestId,
|
|
|
|
|
principalTable: "Interests",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_DiyInterests_DiyId",
|
|
|
|
|
table: "DiyInterests",
|
|
|
|
|
column: "DiyId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_DiyInterests_InterestId",
|
|
|
|
|
table: "DiyInterests",
|
|
|
|
|
column: "InterestId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Diys_StudentId",
|
|
|
|
|
table: "Diys",
|
|
|
|
|
column: "StudentId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Diys_TaskId",
|
|
|
|
|
table: "Diys",
|
|
|
|
|
column: "TaskId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Interests_StudentId",
|
|
|
|
|
table: "Interests",
|
|
|
|
|
column: "StudentId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_LessonMaterials_LessonId",
|
|
|
|
|
table: "LessonMaterials",
|
|
|
|
|
column: "LessonId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_LessonMaterials_MaterialId",
|
|
|
|
|
table: "LessonMaterials",
|
|
|
|
|
column: "MaterialId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Lessons_ProductId",
|
|
|
|
|
table: "Lessons",
|
|
|
|
|
column: "ProductId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Lessons_TeacherId",
|
|
|
|
|
table: "Lessons",
|
|
|
|
|
column: "TeacherId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Materials_TeacherId",
|
|
|
|
|
table: "Materials",
|
|
|
|
|
column: "TeacherId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_ProductInterests_InterestId",
|
|
|
|
|
table: "ProductInterests",
|
|
|
|
|
column: "InterestId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_ProductInterests_ProductId",
|
|
|
|
|
table: "ProductInterests",
|
|
|
|
|
column: "ProductId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Products_StudentId",
|
|
|
|
|
table: "Products",
|
|
|
|
|
column: "StudentId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_TaskMaterials_MaterialId",
|
|
|
|
|
table: "TaskMaterials",
|
|
|
|
|
column: "MaterialId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_TaskMaterials_TaskId",
|
|
|
|
|
table: "TaskMaterials",
|
|
|
|
|
column: "TaskId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Tasks_TeacherId",
|
|
|
|
|
table: "Tasks",
|
|
|
|
|
column: "TeacherId");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc />
|
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
|
|
|
{
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "DiyInterests");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "LessonMaterials");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "ProductInterests");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "TaskMaterials");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Diys");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Lessons");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Interests");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Materials");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Tasks");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Products");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Teachers");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Students");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|