1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace HyperBooru.Migrations
{
/// <inheritdoc />
public partial class CurrentUploadedFile : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "CurrentUploadedFileId",
table: "Media",
type: "integer",
nullable: true);
migrationBuilder.Sql(@"
UPDATE
""Media""
SET
""CurrentUploadedFileId"" = uf.""ObjectId""
FROM
(SELECT
""ObjectId"",
""MediaObjectId""
FROM
""UploadedFiles""
GROUP BY
""ObjectId"",
""MediaObjectId""
ORDER BY
""ObjectId"") AS uf
WHERE
""Media"".""ObjectId"" = uf.""MediaObjectId"";");
migrationBuilder.AlterColumn<int>(
name: "CurrentUploadedFileId",
table: "Media",
type: "integer",
nullable: false);
migrationBuilder.CreateIndex(
name: "IX_Media_CurrentUploadedFileId",
table: "Media",
column: "CurrentUploadedFileId",
unique: true);
migrationBuilder.AddForeignKey(
name: "FK_Media_UploadedFiles_CurrentUploadedFileId",
table: "Media",
column: "CurrentUploadedFileId",
principalTable: "UploadedFiles",
principalColumn: "ObjectId",
onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Media_UploadedFiles_CurrentUploadedFileId",
table: "Media");
migrationBuilder.DropIndex(
name: "IX_Media_CurrentUploadedFileId",
table: "Media");
migrationBuilder.DropColumn(
name: "CurrentUploadedFileId",
table: "Media");
}
}
}
|