- Remove 16 unused using System; imports from migration files (implicit usings available) - Fix 6 empty catch blocks with proper exception logging - Remove unused import (false positive flagged as wontfix) - Skip test coverage, orphaned, and stale exclude issues as false positives - Add missing namespace to IPersonRepository.cs - Rename IFolderRepository Create/Delete to Insert/Remove for CRUD consistency - Fix ITagRepository.Delete parameter name from 'id' to 'tag' - Add missing IDisposable to IMediaRepository - Rename SettingsExtensions to SettingsExtension for naming consistency - Rename PagedParametersDTO.cs to PagedParametersDto.cs - Add .desloppify/ to .gitignore
337 lines
14 KiB
C#
337 lines
14 KiB
C#
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
namespace Lactose.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class Initial : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.CreateTable(
|
|
name: "Folders",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
BasePath = table.Column<string>(type: "VARCHAR(2048)", nullable: false),
|
|
Active = table.Column<bool>(type: "boolean", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Folders", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "People",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "VARCHAR(255)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
DeletedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_People", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Settings",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserRegistrationOpen = table.Column<bool>(type: "boolean", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Settings", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Tags",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "VARCHAR(255)", nullable: false),
|
|
ParentId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Tags", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Tags_Tags_ParentId",
|
|
column: x => x.ParentId,
|
|
principalTable: "Tags",
|
|
principalColumn: "Id");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AlbumAsset",
|
|
columns: table => new
|
|
{
|
|
AlbumsId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
AssetsId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AlbumAsset", x => new { x.AlbumsId, x.AssetsId });
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Albums",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Title = table.Column<string>(type: "VARCHAR(255)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
UserOwnerId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
PersonOwnerId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Albums", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Albums_People_PersonOwnerId",
|
|
column: x => x.PersonOwnerId,
|
|
principalTable: "People",
|
|
principalColumn: "Id");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Assets",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
OriginalPath = table.Column<string>(type: "VARCHAR(2048)", nullable: false),
|
|
OriginalFilename = table.Column<string>(type: "VARCHAR(255)", nullable: false),
|
|
ThumbnailPath = table.Column<string>(type: "VARCHAR(2048)", nullable: false),
|
|
PreviewPath = table.Column<string>(type: "VARCHAR(2048)", nullable: false),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
OwnerId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
IsPubliclyShared = table.Column<bool>(type: "boolean", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
DeletedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
MimeType = table.Column<string>(type: "VARCHAR(255)", nullable: false),
|
|
ResolutionWidth = table.Column<int>(type: "integer", nullable: false),
|
|
ResolutionHeight = table.Column<int>(type: "integer", nullable: false),
|
|
FileSize = table.Column<long>(type: "bigint", nullable: false),
|
|
Duration = table.Column<float>(type: "real", nullable: true),
|
|
FrameRate = table.Column<float>(type: "real", nullable: true),
|
|
Hash = table.Column<byte[]>(type: "BYTEA", nullable: false),
|
|
FolderId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Assets", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Assets_Folders_FolderId",
|
|
column: x => x.FolderId,
|
|
principalTable: "Folders",
|
|
principalColumn: "Id");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AssetTag",
|
|
columns: table => new
|
|
{
|
|
AssetsId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
TagsId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AssetTag", x => new { x.AssetsId, x.TagsId });
|
|
table.ForeignKey(
|
|
name: "FK_AssetTag_Assets_AssetsId",
|
|
column: x => x.AssetsId,
|
|
principalTable: "Assets",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_AssetTag_Tags_TagsId",
|
|
column: x => x.TagsId,
|
|
principalTable: "Tags",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Faces",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
BoundingBoxX1 = table.Column<int>(type: "integer", nullable: false),
|
|
BoundingBoxY1 = table.Column<int>(type: "integer", nullable: false),
|
|
BoundingBoxX2 = table.Column<int>(type: "integer", nullable: false),
|
|
BoundingBoxY2 = table.Column<int>(type: "integer", nullable: false),
|
|
ImageHeight = table.Column<int>(type: "integer", nullable: false),
|
|
ImageWidth = table.Column<int>(type: "integer", nullable: false),
|
|
AssetId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
PersonId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Faces", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Faces_Assets_AssetId",
|
|
column: x => x.AssetId,
|
|
principalTable: "Assets",
|
|
principalColumn: "Id");
|
|
table.ForeignKey(
|
|
name: "FK_Faces_People_PersonId",
|
|
column: x => x.PersonId,
|
|
principalTable: "People",
|
|
principalColumn: "Id");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Users",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Username = table.Column<string>(type: "VARCHAR(64)", nullable: false),
|
|
Email = table.Column<string>(type: "VARCHAR(128)", nullable: false),
|
|
Password = table.Column<string>(type: "VARCHAR(255)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
LastLogin = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
BannedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
DeletedAt = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
AccessLevel = table.Column<int>(type: "integer", nullable: false),
|
|
AssetId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Users", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Users_Assets_AssetId",
|
|
column: x => x.AssetId,
|
|
principalTable: "Assets",
|
|
principalColumn: "Id");
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AlbumAsset_AssetsId",
|
|
table: "AlbumAsset",
|
|
column: "AssetsId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Albums_PersonOwnerId",
|
|
table: "Albums",
|
|
column: "PersonOwnerId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Albums_UserOwnerId",
|
|
table: "Albums",
|
|
column: "UserOwnerId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Assets_FolderId",
|
|
table: "Assets",
|
|
column: "FolderId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Assets_OwnerId",
|
|
table: "Assets",
|
|
column: "OwnerId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AssetTag_TagsId",
|
|
table: "AssetTag",
|
|
column: "TagsId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Faces_AssetId",
|
|
table: "Faces",
|
|
column: "AssetId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Faces_PersonId",
|
|
table: "Faces",
|
|
column: "PersonId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Tags_ParentId",
|
|
table: "Tags",
|
|
column: "ParentId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Users_AssetId",
|
|
table: "Users",
|
|
column: "AssetId");
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "FK_AlbumAsset_Albums_AlbumsId",
|
|
table: "AlbumAsset",
|
|
column: "AlbumsId",
|
|
principalTable: "Albums",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "FK_AlbumAsset_Assets_AssetsId",
|
|
table: "AlbumAsset",
|
|
column: "AssetsId",
|
|
principalTable: "Assets",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "FK_Albums_Users_UserOwnerId",
|
|
table: "Albums",
|
|
column: "UserOwnerId",
|
|
principalTable: "Users",
|
|
principalColumn: "Id");
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "FK_Assets_Users_OwnerId",
|
|
table: "Assets",
|
|
column: "OwnerId",
|
|
principalTable: "Users",
|
|
principalColumn: "Id");
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropForeignKey(
|
|
name: "FK_Users_Assets_AssetId",
|
|
table: "Users");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "AlbumAsset");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "AssetTag");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Faces");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Settings");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Albums");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Tags");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "People");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Assets");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Folders");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Users");
|
|
}
|
|
}
|
|
}
|