using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace HyperBooru.Migrations { /// public partial class Initial : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Objects", columns: table => new { ObjectId = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Guid = table.Column(type: "TEXT", nullable: false), ObjectType = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Objects", x => x.ObjectId); }); migrationBuilder.CreateTable( name: "Media", columns: table => new { ObjectId = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Checksum = table.Column(type: "TEXT", nullable: false), MimeType = table.Column(type: "TEXT", nullable: false), ShortDescription = table.Column(type: "TEXT", nullable: true), LongDescription = table.Column(type: "TEXT", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Media", x => x.ObjectId); table.ForeignKey( name: "FK_Media_Objects_ObjectId", column: x => x.ObjectId, principalTable: "Objects", principalColumn: "ObjectId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "TagDefinitions", columns: table => new { ObjectId = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Source = table.Column(type: "INTEGER", nullable: false), Namespace = table.Column(type: "TEXT", nullable: true), Name = table.Column(type: "TEXT", nullable: false), DbTagDefinitionObjectId = table.Column(type: "INTEGER", nullable: true) }, constraints: table => { table.PrimaryKey("PK_TagDefinitions", x => x.ObjectId); table.ForeignKey( name: "FK_TagDefinitions_Objects_ObjectId", column: x => x.ObjectId, principalTable: "Objects", principalColumn: "ObjectId", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_TagDefinitions_TagDefinitions_DbTagDefinitionObjectId", column: x => x.DbTagDefinitionObjectId, principalTable: "TagDefinitions", principalColumn: "ObjectId"); }); migrationBuilder.CreateTable( name: "UploadedFiles", columns: table => new { UploadedFileId = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), OriginalChecksum = table.Column(type: "TEXT", nullable: false), Filename = table.Column(type: "TEXT", nullable: true), UploadTime = table.Column(type: "TEXT", nullable: false), LastAccessTime = table.Column(type: "TEXT", nullable: true), LastWriteTime = table.Column(type: "TEXT", nullable: true), CreateTime = table.Column(type: "TEXT", nullable: true), MediaObjectId = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_UploadedFiles", x => x.UploadedFileId); table.ForeignKey( name: "FK_UploadedFiles_Media_MediaObjectId", column: x => x.MediaObjectId, principalTable: "Media", principalColumn: "ObjectId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Tags", columns: table => new { ObjectId = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), TagDefinitionObjectId = table.Column(type: "INTEGER", nullable: false), CreateTime = table.Column(type: "TEXT", nullable: false), TargetObjectId = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Tags", x => x.ObjectId); table.ForeignKey( name: "FK_Tags_Objects_ObjectId", column: x => x.ObjectId, principalTable: "Objects", principalColumn: "ObjectId", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tags_Objects_TargetObjectId", column: x => x.TargetObjectId, principalTable: "Objects", principalColumn: "ObjectId", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Tags_TagDefinitions_TagDefinitionObjectId", column: x => x.TagDefinitionObjectId, principalTable: "TagDefinitions", principalColumn: "ObjectId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_Objects_Guid", table: "Objects", column: "Guid"); migrationBuilder.CreateIndex( name: "IX_TagDefinitions_DbTagDefinitionObjectId", table: "TagDefinitions", column: "DbTagDefinitionObjectId"); migrationBuilder.CreateIndex( name: "IX_Tags_TagDefinitionObjectId", table: "Tags", column: "TagDefinitionObjectId"); migrationBuilder.CreateIndex( name: "IX_Tags_TargetObjectId", table: "Tags", column: "TargetObjectId"); migrationBuilder.CreateIndex( name: "IX_UploadedFiles_MediaObjectId", table: "UploadedFiles", column: "MediaObjectId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Tags"); migrationBuilder.DropTable( name: "UploadedFiles"); migrationBuilder.DropTable( name: "TagDefinitions"); migrationBuilder.DropTable( name: "Media"); migrationBuilder.DropTable( name: "Objects"); } } }