255 lines
11 KiB
C#
255 lines
11 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
namespace SmallSoftwareDatabase.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class FirstMigration : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.CreateTable(
|
|
name: "Manufacturers",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<string>(type: "text", nullable: false),
|
|
ManufacturerName = table.Column<string>(type: "text", nullable: false),
|
|
PrevManufacturerName = table.Column<string>(type: "text", nullable: true),
|
|
PrevPrevManufacturerName = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Manufacturers", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Posts",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<string>(type: "text", nullable: false),
|
|
PostId = table.Column<string>(type: "text", nullable: false),
|
|
PostName = table.Column<string>(type: "text", nullable: false),
|
|
PostType = table.Column<int>(type: "integer", nullable: false),
|
|
Salary = table.Column<double>(type: "double precision", nullable: false),
|
|
IsActual = table.Column<bool>(type: "boolean", nullable: false),
|
|
ChangeDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Posts", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Workers",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<string>(type: "text", nullable: false),
|
|
FIO = table.Column<string>(type: "text", nullable: false),
|
|
PostId = table.Column<string>(type: "text", nullable: false),
|
|
BirthDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
EmploymentDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
IsDeleted = table.Column<bool>(type: "boolean", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Workers", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Softwares",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<string>(type: "text", nullable: false),
|
|
SoftwareName = table.Column<string>(type: "text", nullable: false),
|
|
SoftwareType = table.Column<int>(type: "integer", nullable: false),
|
|
ManufacturerId = table.Column<string>(type: "text", nullable: false),
|
|
Price = table.Column<double>(type: "double precision", nullable: false),
|
|
IsDeleted = table.Column<bool>(type: "boolean", nullable: false),
|
|
PrevSoftwareName = table.Column<string>(type: "text", nullable: true),
|
|
PrevPrevSoftwareName = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Softwares", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Softwares_Manufacturers_ManufacturerId",
|
|
column: x => x.ManufacturerId,
|
|
principalTable: "Manufacturers",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Restrict);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Requests",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<string>(type: "text", nullable: false),
|
|
WorkerId = table.Column<string>(type: "text", nullable: false),
|
|
RequestDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
Email = table.Column<string>(type: "text", nullable: false),
|
|
Sum = table.Column<double>(type: "double precision", nullable: false),
|
|
IsCancel = table.Column<bool>(type: "boolean", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Requests", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Requests_Workers_WorkerId",
|
|
column: x => x.WorkerId,
|
|
principalTable: "Workers",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Salaries",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<string>(type: "text", nullable: false),
|
|
WorkerId = table.Column<string>(type: "text", nullable: false),
|
|
WorkerSalary = table.Column<double>(type: "double precision", nullable: false),
|
|
SalaryDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Salaries", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Salaries_Workers_WorkerId",
|
|
column: x => x.WorkerId,
|
|
principalTable: "Workers",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "SoftwareHistories",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<string>(type: "text", nullable: false),
|
|
SoftwareId = table.Column<string>(type: "text", nullable: false),
|
|
OldPrice = table.Column<double>(type: "double precision", nullable: false),
|
|
ChangeDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_SoftwareHistories", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_SoftwareHistories_Softwares_SoftwareId",
|
|
column: x => x.SoftwareId,
|
|
principalTable: "Softwares",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "InstallationRequests",
|
|
columns: table => new
|
|
{
|
|
SoftwareId = table.Column<string>(type: "text", nullable: false),
|
|
RequestId = table.Column<string>(type: "text", nullable: false),
|
|
Count = table.Column<int>(type: "integer", nullable: false),
|
|
Price = table.Column<double>(type: "double precision", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_InstallationRequests", x => new { x.RequestId, x.SoftwareId });
|
|
table.ForeignKey(
|
|
name: "FK_InstallationRequests_Requests_RequestId",
|
|
column: x => x.RequestId,
|
|
principalTable: "Requests",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_InstallationRequests_Softwares_SoftwareId",
|
|
column: x => x.SoftwareId,
|
|
principalTable: "Softwares",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_InstallationRequests_SoftwareId",
|
|
table: "InstallationRequests",
|
|
column: "SoftwareId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Manufacturers_ManufacturerName",
|
|
table: "Manufacturers",
|
|
column: "ManufacturerName",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Posts_PostId_IsActual",
|
|
table: "Posts",
|
|
columns: new[] { "PostId", "IsActual" },
|
|
unique: true,
|
|
filter: "\"IsActual\" = TRUE");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Posts_PostName_IsActual",
|
|
table: "Posts",
|
|
columns: new[] { "PostName", "IsActual" },
|
|
unique: true,
|
|
filter: "\"IsActual\" = TRUE");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Requests_WorkerId",
|
|
table: "Requests",
|
|
column: "WorkerId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Salaries_WorkerId",
|
|
table: "Salaries",
|
|
column: "WorkerId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_SoftwareHistories_SoftwareId",
|
|
table: "SoftwareHistories",
|
|
column: "SoftwareId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Softwares_ManufacturerId",
|
|
table: "Softwares",
|
|
column: "ManufacturerId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Softwares_SoftwareName_IsDeleted",
|
|
table: "Softwares",
|
|
columns: new[] { "SoftwareName", "IsDeleted" },
|
|
unique: true,
|
|
filter: "\"IsDeleted\" = FALSE");
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "InstallationRequests");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Posts");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Salaries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "SoftwareHistories");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Requests");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Softwares");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Workers");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Manufacturers");
|
|
}
|
|
}
|
|
}
|