//
using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
namespace DevHive.Data.Migrations
{
public partial class Inital : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "AspNetRoles",
columns: table => new
{
Id = table.Column(type: "uuid", 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: "uuid", nullable: false),
FirstName = table.Column(type: "text", nullable: true),
LastName = table.Column(type: "text", nullable: true),
UserId = table.Column(type: "uuid", nullable: true),
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);
table.ForeignKey(
name: "FK_AspNetUsers_AspNetUsers_UserId",
column: x => x.UserId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "Languages",
columns: table => new
{
Id = table.Column(type: "uuid", nullable: false),
Name = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Languages", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Technologies",
columns: table => new
{
Id = table.Column(type: "uuid", nullable: false),
Name = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Technologies", x => x.Id);
});
migrationBuilder.CreateTable(
name: "AspNetRoleClaims",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
RoleId = table.Column(type: "uuid", 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: "uuid", 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: "uuid", 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: "uuid", nullable: false),
RoleId = table.Column(type: "uuid", 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: "uuid", 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: "Posts",
columns: table => new
{
Id = table.Column(type: "uuid", nullable: false),
CreatorId = table.Column(type: "uuid", nullable: true),
Message = table.Column(type: "text", nullable: true),
TimeCreated = table.Column(type: "timestamp without time zone", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Posts", x => x.Id);
table.ForeignKey(
name: "FK_Posts_AspNetUsers_CreatorId",
column: x => x.CreatorId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "ProfilePicture",
columns: table => new
{
Id = table.Column(type: "uuid", nullable: false),
UserId = table.Column(type: "uuid", nullable: false),
PictureURL = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_ProfilePicture", x => x.Id);
table.ForeignKey(
name: "FK_ProfilePicture_AspNetUsers_UserId",
column: x => x.UserId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "RoleUser",
columns: table => new
{
RolesId = table.Column(type: "uuid", nullable: false),
UsersId = table.Column(type: "uuid", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_RoleUser", x => new { x.RolesId, x.UsersId });
table.ForeignKey(
name: "FK_RoleUser_AspNetRoles_RolesId",
column: x => x.RolesId,
principalTable: "AspNetRoles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_RoleUser_AspNetUsers_UsersId",
column: x => x.UsersId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "LanguageUser",
columns: table => new
{
LanguagesId = table.Column(type: "uuid", nullable: false),
UsersId = table.Column(type: "uuid", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_LanguageUser", x => new { x.LanguagesId, x.UsersId });
table.ForeignKey(
name: "FK_LanguageUser_AspNetUsers_UsersId",
column: x => x.UsersId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_LanguageUser_Languages_LanguagesId",
column: x => x.LanguagesId,
principalTable: "Languages",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "TechnologyUser",
columns: table => new
{
TechnologiesId = table.Column(type: "uuid", nullable: false),
UsersId = table.Column(type: "uuid", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TechnologyUser", x => new { x.TechnologiesId, x.UsersId });
table.ForeignKey(
name: "FK_TechnologyUser_AspNetUsers_UsersId",
column: x => x.UsersId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TechnologyUser_Technologies_TechnologiesId",
column: x => x.TechnologiesId,
principalTable: "Technologies",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Comments",
columns: table => new
{
Id = table.Column(type: "uuid", nullable: false),
PostId = table.Column(type: "uuid", nullable: true),
CreatorId = table.Column(type: "uuid", nullable: true),
Message = table.Column(type: "text", nullable: true),
TimeCreated = table.Column(type: "timestamp without time zone", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Comments", x => x.Id);
table.ForeignKey(
name: "FK_Comments_AspNetUsers_CreatorId",
column: x => x.CreatorId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Comments_Posts_PostId",
column: x => x.PostId,
principalTable: "Posts",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "PostAttachments",
columns: table => new
{
Id = table.Column(type: "uuid", nullable: false),
PostId = table.Column(type: "uuid", nullable: true),
FileUrl = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_PostAttachments", x => x.Id);
table.ForeignKey(
name: "FK_PostAttachments_Posts_PostId",
column: x => x.PostId,
principalTable: "Posts",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "RatedPosts",
columns: table => new
{
UserId = table.Column(type: "uuid", nullable: false),
PostId = table.Column(type: "uuid", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_RatedPosts", x => new { x.UserId, x.PostId });
table.ForeignKey(
name: "FK_RatedPosts_AspNetUsers_UserId",
column: x => x.UserId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_RatedPosts_Posts_PostId",
column: x => x.PostId,
principalTable: "Posts",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Rating",
columns: table => new
{
Id = table.Column(type: "uuid", nullable: false),
PostId = table.Column(type: "uuid", nullable: false),
Rate = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Rating", x => x.Id);
table.ForeignKey(
name: "FK_Rating_Posts_PostId",
column: x => x.PostId,
principalTable: "Posts",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "UserRates",
columns: table => new
{
Id = table.Column(type: "uuid", nullable: false),
UserId = table.Column(type: "uuid", nullable: true),
Liked = table.Column(type: "boolean", nullable: false),
PostId = table.Column(type: "uuid", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_UserRates", x => x.Id);
table.ForeignKey(
name: "FK_UserRates_AspNetUsers_UserId",
column: x => x.UserId,
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_UserRates_Posts_PostId",
column: x => x.PostId,
principalTable: "Posts",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
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: "IX_AspNetUsers_UserId",
table: "AspNetUsers",
column: "UserId");
migrationBuilder.CreateIndex(
name: "IX_AspNetUsers_UserName",
table: "AspNetUsers",
column: "UserName",
unique: true);
migrationBuilder.CreateIndex(
name: "UserNameIndex",
table: "AspNetUsers",
column: "NormalizedUserName",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Comments_CreatorId",
table: "Comments",
column: "CreatorId");
migrationBuilder.CreateIndex(
name: "IX_Comments_PostId",
table: "Comments",
column: "PostId");
migrationBuilder.CreateIndex(
name: "IX_LanguageUser_UsersId",
table: "LanguageUser",
column: "UsersId");
migrationBuilder.CreateIndex(
name: "IX_PostAttachments_PostId",
table: "PostAttachments",
column: "PostId");
migrationBuilder.CreateIndex(
name: "IX_Posts_CreatorId",
table: "Posts",
column: "CreatorId");
migrationBuilder.CreateIndex(
name: "IX_ProfilePicture_UserId",
table: "ProfilePicture",
column: "UserId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_RatedPosts_PostId",
table: "RatedPosts",
column: "PostId");
migrationBuilder.CreateIndex(
name: "IX_Rating_PostId",
table: "Rating",
column: "PostId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_RoleUser_UsersId",
table: "RoleUser",
column: "UsersId");
migrationBuilder.CreateIndex(
name: "IX_TechnologyUser_UsersId",
table: "TechnologyUser",
column: "UsersId");
migrationBuilder.CreateIndex(
name: "IX_UserRates_PostId",
table: "UserRates",
column: "PostId");
migrationBuilder.CreateIndex(
name: "IX_UserRates_UserId",
table: "UserRates",
column: "UserId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "AspNetRoleClaims");
migrationBuilder.DropTable(
name: "AspNetUserClaims");
migrationBuilder.DropTable(
name: "AspNetUserLogins");
migrationBuilder.DropTable(
name: "AspNetUserRoles");
migrationBuilder.DropTable(
name: "AspNetUserTokens");
migrationBuilder.DropTable(
name: "Comments");
migrationBuilder.DropTable(
name: "LanguageUser");
migrationBuilder.DropTable(
name: "PostAttachments");
migrationBuilder.DropTable(
name: "ProfilePicture");
migrationBuilder.DropTable(
name: "RatedPosts");
migrationBuilder.DropTable(
name: "Rating");
migrationBuilder.DropTable(
name: "RoleUser");
migrationBuilder.DropTable(
name: "TechnologyUser");
migrationBuilder.DropTable(
name: "UserRates");
migrationBuilder.DropTable(
name: "Languages");
migrationBuilder.DropTable(
name: "AspNetRoles");
migrationBuilder.DropTable(
name: "Technologies");
migrationBuilder.DropTable(
name: "Posts");
migrationBuilder.DropTable(
name: "AspNetUsers");
}
}
}