summaryrefslogtreecommitdiff
path: root/Migrations/20230905163953_CurrentUploadedFile.cs
blob: 265259ec700ce0fc3712ab95fc393180529f1637 (plain)
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");
        }
    }
}