Files
romrepomgr/RomRepoMgr.Database/Migrations/20200910111423_AddStatsTable.cs

32 lines
9.4 KiB
C#
Raw Normal View History

using Microsoft.EntityFrameworkCore.Migrations;
namespace RomRepoMgr.Database.Migrations
{
public partial class AddStatsTable : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable("RomSetStats", table => new
{
RomSetId = table.Column<long>(nullable: false),
TotalMachines = table.Column<long>(nullable: false),
CompleteMachines = table.Column<long>(nullable: false),
IncompleteMachines = table.Column<long>(nullable: false),
TotalRoms = table.Column<long>(nullable: false),
HaveRoms = table.Column<long>(nullable: false),
MissRoms = table.Column<long>(nullable: false)
}, constraints: table =>
{
table.PrimaryKey("PK_RomSetStats", x => x.RomSetId);
table.ForeignKey("FK_RomSetStats_RomSets_RomSetId", x => x.RomSetId, "RomSets", "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.Sql(
"INSERT INTO \"RomSetStats\" SELECT \"r\".\"Id\" AS \"RomSetId\", CAST((\n SELECT COUNT(*)\n FROM \"Machines\" AS \"m\"\n WHERE \"r\".\"Id\" = \"m\".\"RomSetId\") AS INTEGER) AS \"TotalMachines\", CAST((((\n SELECT COUNT(*)\n FROM \"Machines\" AS \"m0\"\n WHERE (\"r\".\"Id\" = \"m0\".\"RomSetId\") AND ((((\n SELECT COUNT(*)\n FROM \"FilesByMachines\" AS \"f\"\n WHERE \"m0\".\"Id\" = \"f\".\"MachineId\") > 0) AND ((\n SELECT COUNT(*)\n FROM \"DisksByMachines\" AS \"d\"\n WHERE \"m0\".\"Id\" = \"d\".\"MachineId\") = 0)) AND NOT EXISTS (\n SELECT 1\n FROM \"FilesByMachines\" AS \"f0\"\n INNER JOIN \"Files\" AS \"f1\" ON \"f0\".\"FileId\" = \"f1\".\"Id\"\n WHERE (\"m0\".\"Id\" = \"f0\".\"MachineId\") AND NOT (\"f1\".\"IsInRepo\")))) + (\n SELECT COUNT(*)\n FROM \"Machines\" AS \"m1\"\n WHERE (\"r\".\"Id\" = \"m1\".\"RomSetId\") AND ((((\n SELECT COUNT(*)\n FROM \"DisksByMachines\" AS \"d0\"\n WHERE \"m1\".\"Id\" = \"d0\".\"MachineId\") > 0) AND ((\n SELECT COUNT(*)\n FROM \"FilesByMachines\" AS \"f2\"\n WHERE \"m1\".\"Id\" = \"f2\".\"MachineId\") = 0)) AND NOT EXISTS (\n SELECT 1\n FROM \"DisksByMachines\" AS \"d1\"\n INNER JOIN \"Disks\" AS \"d2\" ON \"d1\".\"DiskId\" = \"d2\".\"Id\"\n WHERE (\"m1\".\"Id\" = \"d1\".\"MachineId\") AND NOT (\"d2\".\"IsInRepo\"))))) + (\n SELECT COUNT(*)\n FROM \"Machines\" AS \"m2\"\n WHERE (\"r\".\"Id\" = \"m2\".\"RomSetId\") AND (((((\n SELECT COUNT(*)\n FROM \"FilesByMachines\" AS \"f3\"\n WHERE \"m2\".\"Id\" = \"f3\".\"MachineId\") > 0) AND ((\n SELECT COUNT(*)\n FROM \"DisksByMachines\" AS \"d3\"\n WHERE \"m2\".\"Id\" = \"d3\".\"MachineId\") > 0)) AND NOT EXISTS (\n SELECT 1\n FROM \"FilesByMachines\" AS \"f4\"\n INNER JOIN \"Files\" AS \"f5\" ON \"f4\".\"FileId\" = \"f5\".\"Id\"\n WHERE (\"m2\".\"Id\" = \"f4\".\"MachineId\") AND NOT (\"f5\".\"IsInRepo\"))) AND NOT EXISTS (\n SELECT 1\n FROM \"DisksByMachines\" AS \"d4\"\n INNER JOIN \"Disks\" AS \"d5\" ON \"d4\".\"DiskId\" = \"d5\".\"Id\"\n WHERE (\"m2\".\"Id\" = \"d4\".\"MachineId\") AND NOT (\"d5\".\"IsInRepo\"))))) AS INTEGER) AS \"CompleteMachines\", CAST((((\n SELECT COUNT(*)\n FROM \"Machines\" AS \"m3\"\n WHERE (\"r\".\"Id\" = \"m3\".\"RomSetId\") AND ((((\n SELECT COUNT(*)\n FROM \"FilesByMachines\" AS \"f6\"\n WHERE \"m3\".\"Id\" = \"f6\".\"MachineId\") > 0) AND ((\n SELECT COUNT(*)\n FROM \"DisksByMachines\" AS \"d6\"\n WHERE \"m3\".\"Id\" = \"d6\".\"MachineId\") = 0)) AND EXISTS (\n SELECT 1\n FROM \"FilesByMachines\" AS \"f7\"\n INNER JOIN \"Files\" AS \"f8\" ON \"f7\".\"FileId\" = \"f8\".\"Id\"\n WHERE (\"m3\".\"Id\" = \"f7\".\"MachineId\") AND NOT (\"f8\".\"IsInRepo\")))) + (\n SELECT COUNT(*)\n FROM \"Machines\" AS \"m4\"\n WHERE (\"r\".\"Id\" = \"m4\".\"RomSetId\") AND ((((\n SELECT COUNT(*)\n FROM \"DisksByMachines\" AS \"d7\"\n WHERE \"m4\".\"Id\" = \"d7\".\"MachineId\") > 0) AND ((\n SELECT COUNT(*)\n FROM \"FilesByMachines\" AS \"f9\"\n WHERE \"m4\".\"Id\" = \"f9\".\"MachineId\") = 0)) AND EXISTS (\n SELECT 1\n FROM \"DisksByMachines\" AS \"d8\"\n INNER JOIN \"Disks\" AS \"d9\" ON \"d8\".\"DiskId\" = \"d9\".\"Id\"\n WHERE (\"m4\".\"Id\" = \"d8\".\"MachineId\") AND NOT (\"d9\".\"IsInRepo\"))))) + (\n SELECT COUNT(*)\n F
}
protected override void Down(MigrationBuilder migrationBuilder) => migrationBuilder.DropTable("RomSetStats");
}
}