using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using NpgsqlTypes;
#nullable disable
namespace OpenArchival.DataAccess.Migrations
{
///
public partial class InitalCreate : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "ArchiveCategories",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column(type: "text", nullable: false),
Description = table.Column(type: "text", nullable: true),
FieldSeparator = table.Column(type: "text", nullable: false),
FieldNames = table.Column>(type: "text[]", nullable: false),
FieldDescriptions = table.Column>(type: "text[]", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArchiveCategories", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ArtifactAssociatedNames",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Value = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactAssociatedNames", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ArtifactDefects",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Description = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactDefects", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ArtifactEntryTags",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactEntryTags", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ArtifactStorageLocations",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Location = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactStorageLocations", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ArtifactTypes",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactTypes", x => x.Id);
});
migrationBuilder.CreateTable(
name: "AspNetRoles",
columns: table => new
{
Id = table.Column(type: "text", nullable: false),
Name = table.Column(type: "character varying(256)", maxLength: 256, nullable: true),
NormalizedName = table.Column(type: "character varying(256)", maxLength: 256, nullable: true),
ConcurrencyStamp = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetRoles", x => x.Id);
});
migrationBuilder.CreateTable(
name: "AspNetUsers",
columns: table => new
{
Id = table.Column(type: "text", nullable: false),
PermissionLevel = table.Column(type: "text", nullable: false),
UserName = table.Column(type: "character varying(256)", maxLength: 256, nullable: true),
NormalizedUserName = table.Column(type: "character varying(256)", maxLength: 256, nullable: true),
Email = table.Column(type: "character varying(256)", maxLength: 256, nullable: true),
NormalizedEmail = table.Column(type: "character varying(256)", maxLength: 256, nullable: true),
EmailConfirmed = table.Column(type: "boolean", nullable: false),
PasswordHash = table.Column(type: "text", nullable: true),
SecurityStamp = table.Column(type: "text", nullable: true),
ConcurrencyStamp = table.Column(type: "text", nullable: true),
PhoneNumber = table.Column(type: "text", nullable: true),
PhoneNumberConfirmed = table.Column(type: "boolean", nullable: false),
TwoFactorEnabled = table.Column(type: "boolean", nullable: false),
LockoutEnd = table.Column(type: "timestamp with time zone", nullable: true),
LockoutEnabled = table.Column(type: "boolean", nullable: false),
AccessFailedCount = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetUsers", x => x.Id);
});
migrationBuilder.CreateTable(
name: "BlogPosts",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Title = table.Column(type: "text", nullable: false),
Content = table.Column(type: "text", nullable: false),
CreationTime = table.Column(type: "timestamp with time zone", nullable: false),
ModifiedTime = table.Column(type: "timestamp with time zone", nullable: false),
ContentSearchVector = table.Column(type: "tsvector", nullable: false)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "Content" }),
TitleSearchVector = table.Column(type: "tsvector", nullable: false)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "Title" }),
TagsSearchString = table.Column(type: "text", nullable: false),
TagsSearchVector = table.Column(type: "tsvector", nullable: false)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "TagsSearchString" }),
AllSearchString = table.Column(type: "text", nullable: false),
AllSearchVector = table.Column(type: "tsvector", nullable: false)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "AllSearchString" })
},
constraints: table =>
{
table.PrimaryKey("PK_BlogPosts", x => x.Id);
});
migrationBuilder.CreateTable(
name: "BlogPostTags",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_BlogPostTags", x => x.Id);
});
migrationBuilder.CreateTable(
name: "SearchPageSliderEntries",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Title = table.Column(type: "text", nullable: false),
Description = table.Column(type: "text", nullable: false),
MaxCount = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_SearchPageSliderEntries", x => x.Id);
});
migrationBuilder.CreateTable(
name: "ArtifactGroupings",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
CategoryId = table.Column(type: "integer", nullable: false),
Title = table.Column(type: "text", nullable: false),
Description = table.Column(type: "text", nullable: true),
TypeId = table.Column(type: "integer", nullable: false),
IsPublicallyVisible = table.Column(type: "boolean", nullable: false),
AllSearchString = table.Column(type: "text", nullable: false),
AllSearchVector = table.Column(type: "tsvector", nullable: true)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "AllSearchString" }),
TagsSearchString = table.Column(type: "text", nullable: false),
TagsSearchVector = table.Column(type: "tsvector", nullable: true)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "TagsSearchString" }),
DefectsSearchString = table.Column(type: "text", nullable: false),
DefectsSearchVector = table.Column(type: "tsvector", nullable: true)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "DefectsSearchString" }),
ListedNamesSearchString = table.Column(type: "text", nullable: false),
ListedNamesSearchVector = table.Column(type: "tsvector", nullable: true)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "ListedNamesSearchString" }),
TitleSearchString = table.Column(type: "text", nullable: false),
TitleSearchVector = table.Column(type: "tsvector", nullable: true)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "TitleSearchString" }),
DescriptionSearchString = table.Column(type: "text", nullable: false),
DescriptionSearchVector = table.Column(type: "tsvector", nullable: true)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "DescriptionSearchString" }),
FilenamesSearchString = table.Column(type: "text", nullable: false),
FilenamesSearchVector = table.Column(type: "tsvector", nullable: false)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "FilenamesSearchString" }),
FileContentSearchString = table.Column(type: "text", nullable: false),
FileContentSearchVector = table.Column(type: "tsvector", nullable: false)
.Annotation("Npgsql:TsVectorConfig", "english")
.Annotation("Npgsql:TsVectorProperties", new[] { "FileContentSearchString" }),
IdentifierFields = table.Column(type: "jsonb", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactGroupings", x => x.Id);
table.ForeignKey(
name: "FK_ArtifactGroupings_ArchiveCategories_CategoryId",
column: x => x.CategoryId,
principalTable: "ArchiveCategories",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactGroupings_ArtifactTypes_TypeId",
column: x => x.TypeId,
principalTable: "ArtifactTypes",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "AspNetRoleClaims",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
RoleId = table.Column(type: "text", nullable: false),
ClaimType = table.Column(type: "text", nullable: true),
ClaimValue = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id);
table.ForeignKey(
name: "FK_AspNetRoleClaims_AspNetRoles_RoleId",
column: x => x.RoleId,
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "AspNetUserClaims",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
UserId = table.Column(type: "text", nullable: false),
ClaimType = table.Column(type: "text", nullable: true),
ClaimValue = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetUserClaims", x => x.Id);
table.ForeignKey(
name: "FK_AspNetUserClaims_AspNetUsers_UserId",
column: x => x.UserId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "AspNetUserLogins",
columns: table => new
{
LoginProvider = table.Column(type: "text", nullable: false),
ProviderKey = table.Column(type: "text", nullable: false),
ProviderDisplayName = table.Column(type: "text", nullable: true),
UserId = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey });
table.ForeignKey(
name: "FK_AspNetUserLogins_AspNetUsers_UserId",
column: x => x.UserId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "AspNetUserRoles",
columns: table => new
{
UserId = table.Column(type: "text", nullable: false),
RoleId = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId });
table.ForeignKey(
name: "FK_AspNetUserRoles_AspNetRoles_RoleId",
column: x => x.RoleId,
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_AspNetUserRoles_AspNetUsers_UserId",
column: x => x.UserId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "AspNetUserTokens",
columns: table => new
{
UserId = table.Column(type: "text", nullable: false),
LoginProvider = table.Column(type: "text", nullable: false),
Name = table.Column(type: "text", nullable: false),
Value = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
table.ForeignKey(
name: "FK_AspNetUserTokens_AspNetUsers_UserId",
column: x => x.UserId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "BlogPostViews",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
BlogPostId = table.Column(type: "integer", nullable: false),
Views = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_BlogPostViews", x => x.Id);
table.ForeignKey(
name: "FK_BlogPostViews_BlogPosts_BlogPostId",
column: x => x.BlogPostId,
principalTable: "BlogPosts",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "BlogPostBlogPostTag",
columns: table => new
{
BlogPostsId = table.Column(type: "integer", nullable: false),
TagsId = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_BlogPostBlogPostTag", x => new { x.BlogPostsId, x.TagsId });
table.ForeignKey(
name: "FK_BlogPostBlogPostTag_BlogPostTags_TagsId",
column: x => x.TagsId,
principalTable: "BlogPostTags",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_BlogPostBlogPostTag_BlogPosts_BlogPostsId",
column: x => x.BlogPostsId,
principalTable: "BlogPosts",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ArtifactEntryTagSearchPageSliderEntry",
columns: table => new
{
FilterTagsId = table.Column(type: "integer", nullable: false),
SearchPageSlidersId = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactEntryTagSearchPageSliderEntry", x => new { x.FilterTagsId, x.SearchPageSlidersId });
table.ForeignKey(
name: "FK_ArtifactEntryTagSearchPageSliderEntry_ArtifactEntryTags_Fil~",
column: x => x.FilterTagsId,
principalTable: "ArtifactEntryTags",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactEntryTagSearchPageSliderEntry_SearchPageSliderEntri~",
column: x => x.SearchPageSlidersId,
principalTable: "SearchPageSliderEntries",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ArtifactEntries",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
ArtifactNumber = table.Column(type: "text", nullable: true),
Title = table.Column(type: "text", nullable: false),
Description = table.Column(type: "text", nullable: true),
StorageLocationId = table.Column(type: "integer", nullable: false),
AssociatedDates = table.Column>(type: "timestamp with time zone[]", nullable: true),
Links = table.Column>(type: "text[]", nullable: true),
FileTextContent = table.Column(type: "text", nullable: true),
TypeId = table.Column(type: "integer", nullable: false),
IsPubliclyVisible = table.Column(type: "boolean", nullable: false),
Quantity = table.Column(type: "integer", nullable: false),
ArtifactGroupingId = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactEntries", x => x.Id);
table.ForeignKey(
name: "FK_ArtifactEntries_ArtifactGroupings_ArtifactGroupingId",
column: x => x.ArtifactGroupingId,
principalTable: "ArtifactGroupings",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactEntries_ArtifactStorageLocations_StorageLocationId",
column: x => x.StorageLocationId,
principalTable: "ArtifactStorageLocations",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactEntries_ArtifactTypes_TypeId",
column: x => x.TypeId,
principalTable: "ArtifactTypes",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ArtifactGroupingBlogPost",
columns: table => new
{
ArtifactGroupingsId = table.Column(type: "integer", nullable: false),
BlogPostsId = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactGroupingBlogPost", x => new { x.ArtifactGroupingsId, x.BlogPostsId });
table.ForeignKey(
name: "FK_ArtifactGroupingBlogPost_ArtifactGroupings_ArtifactGrouping~",
column: x => x.ArtifactGroupingsId,
principalTable: "ArtifactGroupings",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactGroupingBlogPost_BlogPosts_BlogPostsId",
column: x => x.BlogPostsId,
principalTable: "BlogPosts",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ArtifactGroupingViewCounts",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
ArtifactGroupingId = table.Column(type: "integer", nullable: false),
Views = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactGroupingViewCounts", x => x.Id);
table.ForeignKey(
name: "FK_ArtifactGroupingViewCounts_ArtifactGroupings_ArtifactGroupi~",
column: x => x.ArtifactGroupingId,
principalTable: "ArtifactGroupings",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ArtifactDefectArtifactEntry",
columns: table => new
{
ArtifactEntriesId = table.Column(type: "integer", nullable: false),
DefectsId = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactDefectArtifactEntry", x => new { x.ArtifactEntriesId, x.DefectsId });
table.ForeignKey(
name: "FK_ArtifactDefectArtifactEntry_ArtifactDefects_DefectsId",
column: x => x.DefectsId,
principalTable: "ArtifactDefects",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactDefectArtifactEntry_ArtifactEntries_ArtifactEntries~",
column: x => x.ArtifactEntriesId,
principalTable: "ArtifactEntries",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ArtifactEntryArtifactEntryTag",
columns: table => new
{
ArtifactEntriesId = table.Column(type: "integer", nullable: false),
TagsId = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactEntryArtifactEntryTag", x => new { x.ArtifactEntriesId, x.TagsId });
table.ForeignKey(
name: "FK_ArtifactEntryArtifactEntryTag_ArtifactEntries_ArtifactEntri~",
column: x => x.ArtifactEntriesId,
principalTable: "ArtifactEntries",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactEntryArtifactEntryTag_ArtifactEntryTags_TagsId",
column: x => x.TagsId,
principalTable: "ArtifactEntryTags",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ArtifactEntryListedName",
columns: table => new
{
ArtifactEntriesId = table.Column(type: "integer", nullable: false),
ListedNamesId = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactEntryListedName", x => new { x.ArtifactEntriesId, x.ListedNamesId });
table.ForeignKey(
name: "FK_ArtifactEntryListedName_ArtifactAssociatedNames_ListedNames~",
column: x => x.ListedNamesId,
principalTable: "ArtifactAssociatedNames",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactEntryListedName_ArtifactEntries_ArtifactEntriesId",
column: x => x.ArtifactEntriesId,
principalTable: "ArtifactEntries",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "ArtifactFilePaths",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
ParentArtifactEntryId = table.Column(type: "integer", nullable: true),
ParentBlogPostId = table.Column(type: "integer", nullable: true),
OriginalName = table.Column(type: "text", nullable: false),
Path = table.Column(type: "text", nullable: false),
ArtifactGroupingId = table.Column(type: "integer", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactFilePaths", x => x.Id);
table.ForeignKey(
name: "FK_ArtifactFilePaths_ArtifactEntries_ParentArtifactEntryId",
column: x => x.ParentArtifactEntryId,
principalTable: "ArtifactEntries",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactFilePaths_ArtifactGroupings_ArtifactGroupingId",
column: x => x.ArtifactGroupingId,
principalTable: "ArtifactGroupings",
principalColumn: "Id");
table.ForeignKey(
name: "FK_ArtifactFilePaths_BlogPosts_ParentBlogPostId",
column: x => x.ParentBlogPostId,
principalTable: "BlogPosts",
principalColumn: "Id");
});
migrationBuilder.CreateTable(
name: "ArtifactRelationships",
columns: table => new
{
RelatedById = table.Column(type: "integer", nullable: false),
RelatedToId = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ArtifactRelationships", x => new { x.RelatedById, x.RelatedToId });
table.ForeignKey(
name: "FK_ArtifactRelationships_ArtifactEntries_RelatedById",
column: x => x.RelatedById,
principalTable: "ArtifactEntries",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_ArtifactRelationships_ArtifactEntries_RelatedToId",
column: x => x.RelatedToId,
principalTable: "ArtifactEntries",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_ArtifactDefectArtifactEntry_DefectsId",
table: "ArtifactDefectArtifactEntry",
column: "DefectsId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactEntries_ArtifactGroupingId",
table: "ArtifactEntries",
column: "ArtifactGroupingId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactEntries_StorageLocationId",
table: "ArtifactEntries",
column: "StorageLocationId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactEntries_TypeId",
table: "ArtifactEntries",
column: "TypeId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactEntryArtifactEntryTag_TagsId",
table: "ArtifactEntryArtifactEntryTag",
column: "TagsId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactEntryListedName_ListedNamesId",
table: "ArtifactEntryListedName",
column: "ListedNamesId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactEntryTagSearchPageSliderEntry_SearchPageSlidersId",
table: "ArtifactEntryTagSearchPageSliderEntry",
column: "SearchPageSlidersId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactFilePaths_ArtifactGroupingId",
table: "ArtifactFilePaths",
column: "ArtifactGroupingId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactFilePaths_ParentArtifactEntryId",
table: "ArtifactFilePaths",
column: "ParentArtifactEntryId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactFilePaths_ParentBlogPostId",
table: "ArtifactFilePaths",
column: "ParentBlogPostId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupingBlogPost_BlogPostsId",
table: "ArtifactGroupingBlogPost",
column: "BlogPostsId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_AllSearchVector",
table: "ArtifactGroupings",
column: "AllSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_CategoryId",
table: "ArtifactGroupings",
column: "CategoryId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_DefectsSearchVector",
table: "ArtifactGroupings",
column: "DefectsSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_DescriptionSearchVector",
table: "ArtifactGroupings",
column: "DescriptionSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_FileContentSearchVector",
table: "ArtifactGroupings",
column: "FileContentSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_FilenamesSearchVector",
table: "ArtifactGroupings",
column: "FilenamesSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_ListedNamesSearchVector",
table: "ArtifactGroupings",
column: "ListedNamesSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_TagsSearchVector",
table: "ArtifactGroupings",
column: "TagsSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_TitleSearchVector",
table: "ArtifactGroupings",
column: "TitleSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupings_TypeId",
table: "ArtifactGroupings",
column: "TypeId");
migrationBuilder.CreateIndex(
name: "IX_ArtifactGroupingViewCounts_ArtifactGroupingId",
table: "ArtifactGroupingViewCounts",
column: "ArtifactGroupingId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_ArtifactRelationships_RelatedToId",
table: "ArtifactRelationships",
column: "RelatedToId");
migrationBuilder.CreateIndex(
name: "IX_AspNetRoleClaims_RoleId",
table: "AspNetRoleClaims",
column: "RoleId");
migrationBuilder.CreateIndex(
name: "RoleNameIndex",
table: "AspNetRoles",
column: "NormalizedName",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_AspNetUserClaims_UserId",
table: "AspNetUserClaims",
column: "UserId");
migrationBuilder.CreateIndex(
name: "IX_AspNetUserLogins_UserId",
table: "AspNetUserLogins",
column: "UserId");
migrationBuilder.CreateIndex(
name: "IX_AspNetUserRoles_RoleId",
table: "AspNetUserRoles",
column: "RoleId");
migrationBuilder.CreateIndex(
name: "EmailIndex",
table: "AspNetUsers",
column: "NormalizedEmail");
migrationBuilder.CreateIndex(
name: "UserNameIndex",
table: "AspNetUsers",
column: "NormalizedUserName",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_BlogPostBlogPostTag_TagsId",
table: "BlogPostBlogPostTag",
column: "TagsId");
migrationBuilder.CreateIndex(
name: "IX_BlogPosts_AllSearchVector",
table: "BlogPosts",
column: "AllSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_BlogPosts_ContentSearchVector",
table: "BlogPosts",
column: "ContentSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_BlogPosts_TagsSearchVector",
table: "BlogPosts",
column: "TagsSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_BlogPosts_TitleSearchVector",
table: "BlogPosts",
column: "TitleSearchVector")
.Annotation("Npgsql:IndexMethod", "GIN");
migrationBuilder.CreateIndex(
name: "IX_BlogPostViews_BlogPostId",
table: "BlogPostViews",
column: "BlogPostId",
unique: true);
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "ArtifactDefectArtifactEntry");
migrationBuilder.DropTable(
name: "ArtifactEntryArtifactEntryTag");
migrationBuilder.DropTable(
name: "ArtifactEntryListedName");
migrationBuilder.DropTable(
name: "ArtifactEntryTagSearchPageSliderEntry");
migrationBuilder.DropTable(
name: "ArtifactFilePaths");
migrationBuilder.DropTable(
name: "ArtifactGroupingBlogPost");
migrationBuilder.DropTable(
name: "ArtifactGroupingViewCounts");
migrationBuilder.DropTable(
name: "ArtifactRelationships");
migrationBuilder.DropTable(
name: "AspNetRoleClaims");
migrationBuilder.DropTable(
name: "AspNetUserClaims");
migrationBuilder.DropTable(
name: "AspNetUserLogins");
migrationBuilder.DropTable(
name: "AspNetUserRoles");
migrationBuilder.DropTable(
name: "AspNetUserTokens");
migrationBuilder.DropTable(
name: "BlogPostBlogPostTag");
migrationBuilder.DropTable(
name: "BlogPostViews");
migrationBuilder.DropTable(
name: "ArtifactDefects");
migrationBuilder.DropTable(
name: "ArtifactAssociatedNames");
migrationBuilder.DropTable(
name: "ArtifactEntryTags");
migrationBuilder.DropTable(
name: "SearchPageSliderEntries");
migrationBuilder.DropTable(
name: "ArtifactEntries");
migrationBuilder.DropTable(
name: "AspNetRoles");
migrationBuilder.DropTable(
name: "AspNetUsers");
migrationBuilder.DropTable(
name: "BlogPostTags");
migrationBuilder.DropTable(
name: "BlogPosts");
migrationBuilder.DropTable(
name: "ArtifactGroupings");
migrationBuilder.DropTable(
name: "ArtifactStorageLocations");
migrationBuilder.DropTable(
name: "ArchiveCategories");
migrationBuilder.DropTable(
name: "ArtifactTypes");
}
}
}