1 using System;
2 using System.Collections.Generic;
3 using Microsoft.EntityFrameworkCore.Metadata;
4 using Microsoft.EntityFrameworkCore.Migrations;
5 
6 namespace IdentitySample.DefaultUI.Data.Migrations
7 {
8     public partial class CreateIdentitySchema : Migration
9     {
Up(MigrationBuilder migrationBuilder)10         protected override void Up(MigrationBuilder migrationBuilder)
11         {
12             migrationBuilder.CreateTable(
13                 name: "AspNetRoles",
14                 columns: table => new
15                 {
16                     Id = table.Column<string>(nullable: false),
17                     Name = table.Column<string>(maxLength: 256, nullable: true),
18                     NormalizedName = table.Column<string>(maxLength: 256, nullable: true),
19                     ConcurrencyStamp = table.Column<string>(nullable: true)
20                 },
21                 constraints: table =>
22                 {
23                     table.PrimaryKey("PK_AspNetRoles", x => x.Id);
24                 });
25 
26             migrationBuilder.CreateTable(
27                 name: "AspNetUsers",
28                 columns: table => new
29                 {
30                     Id = table.Column<string>(nullable: false),
31                     UserName = table.Column<string>(maxLength: 256, nullable: true),
32                     NormalizedUserName = table.Column<string>(maxLength: 256, nullable: true),
33                     Email = table.Column<string>(maxLength: 256, nullable: true),
34                     NormalizedEmail = table.Column<string>(maxLength: 256, nullable: true),
35                     EmailConfirmed = table.Column<bool>(nullable: false),
36                     PasswordHash = table.Column<string>(nullable: true),
37                     SecurityStamp = table.Column<string>(nullable: true),
38                     ConcurrencyStamp = table.Column<string>(nullable: true),
39                     PhoneNumber = table.Column<string>(nullable: true),
40                     PhoneNumberConfirmed = table.Column<bool>(nullable: false),
41                     TwoFactorEnabled = table.Column<bool>(nullable: false),
42                     LockoutEnd = table.Column<DateTimeOffset>(nullable: true),
43                     LockoutEnabled = table.Column<bool>(nullable: false),
44                     AccessFailedCount = table.Column<int>(nullable: false),
45                     Name = table.Column<string>(nullable: true),
46                     Age = table.Column<int>(nullable: false)
47                 },
48                 constraints: table =>
49                 {
50                     table.PrimaryKey("PK_AspNetUsers", x => x.Id);
51                 });
52 
53             migrationBuilder.CreateTable(
54                 name: "AspNetRoleClaims",
55                 columns: table => new
56                 {
57                     Id = table.Column<int>(nullable: false)
58                         .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
59                     RoleId = table.Column<string>(nullable: false),
60                     ClaimType = table.Column<string>(nullable: true),
61                     ClaimValue = table.Column<string>(nullable: true)
62                 },
63                 constraints: table =>
64                 {
65                     table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id);
66                     table.ForeignKey(
67                         name: "FK_AspNetRoleClaims_AspNetRoles_RoleId",
68                         column: x => x.RoleId,
69                         principalTable: "AspNetRoles",
70                         principalColumn: "Id",
71                         onDelete: ReferentialAction.Cascade);
72                 });
73 
74             migrationBuilder.CreateTable(
75                 name: "AspNetUserClaims",
76                 columns: table => new
77                 {
78                     Id = table.Column<int>(nullable: false)
79                         .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
80                     UserId = table.Column<string>(nullable: false),
81                     ClaimType = table.Column<string>(nullable: true),
82                     ClaimValue = table.Column<string>(nullable: true)
83                 },
84                 constraints: table =>
85                 {
86                     table.PrimaryKey("PK_AspNetUserClaims", x => x.Id);
87                     table.ForeignKey(
88                         name: "FK_AspNetUserClaims_AspNetUsers_UserId",
89                         column: x => x.UserId,
90                         principalTable: "AspNetUsers",
91                         principalColumn: "Id",
92                         onDelete: ReferentialAction.Cascade);
93                 });
94 
95             migrationBuilder.CreateTable(
96                 name: "AspNetUserLogins",
97                 columns: table => new
98                 {
99                     LoginProvider = table.Column<string>(maxLength: 128, nullable: false),
100                     ProviderKey = table.Column<string>(maxLength: 128, nullable: false),
101                     ProviderDisplayName = table.Column<string>(nullable: true),
102                     UserId = table.Column<string>(nullable: false)
103                 },
104                 constraints: table =>
105                 {
106                     table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey });
107                     table.ForeignKey(
108                         name: "FK_AspNetUserLogins_AspNetUsers_UserId",
109                         column: x => x.UserId,
110                         principalTable: "AspNetUsers",
111                         principalColumn: "Id",
112                         onDelete: ReferentialAction.Cascade);
113                 });
114 
115             migrationBuilder.CreateTable(
116                 name: "AspNetUserRoles",
117                 columns: table => new
118                 {
119                     UserId = table.Column<string>(nullable: false),
120                     RoleId = table.Column<string>(nullable: false)
121                 },
122                 constraints: table =>
123                 {
124                     table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId });
125                     table.ForeignKey(
126                         name: "FK_AspNetUserRoles_AspNetRoles_RoleId",
127                         column: x => x.RoleId,
128                         principalTable: "AspNetRoles",
129                         principalColumn: "Id",
130                         onDelete: ReferentialAction.Cascade);
131                     table.ForeignKey(
132                         name: "FK_AspNetUserRoles_AspNetUsers_UserId",
133                         column: x => x.UserId,
134                         principalTable: "AspNetUsers",
135                         principalColumn: "Id",
136                         onDelete: ReferentialAction.Cascade);
137                 });
138 
139             migrationBuilder.CreateTable(
140                 name: "AspNetUserTokens",
141                 columns: table => new
142                 {
143                     UserId = table.Column<string>(nullable: false),
144                     LoginProvider = table.Column<string>(maxLength: 128, nullable: false),
145                     Name = table.Column<string>(maxLength: 128, nullable: false),
146                     Value = table.Column<string>(nullable: true)
147                 },
148                 constraints: table =>
149                 {
150                     table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
151                     table.ForeignKey(
152                         name: "FK_AspNetUserTokens_AspNetUsers_UserId",
153                         column: x => x.UserId,
154                         principalTable: "AspNetUsers",
155                         principalColumn: "Id",
156                         onDelete: ReferentialAction.Cascade);
157                 });
158 
159             migrationBuilder.CreateIndex(
160                 name: "IX_AspNetRoleClaims_RoleId",
161                 table: "AspNetRoleClaims",
162                 column: "RoleId");
163 
164             migrationBuilder.CreateIndex(
165                 name: "RoleNameIndex",
166                 table: "AspNetRoles",
167                 column: "NormalizedName",
168                 unique: true,
169                 filter: "[NormalizedName] IS NOT NULL");
170 
171             migrationBuilder.CreateIndex(
172                 name: "IX_AspNetUserClaims_UserId",
173                 table: "AspNetUserClaims",
174                 column: "UserId");
175 
176             migrationBuilder.CreateIndex(
177                 name: "IX_AspNetUserLogins_UserId",
178                 table: "AspNetUserLogins",
179                 column: "UserId");
180 
181             migrationBuilder.CreateIndex(
182                 name: "IX_AspNetUserRoles_RoleId",
183                 table: "AspNetUserRoles",
184                 column: "RoleId");
185 
186             migrationBuilder.CreateIndex(
187                 name: "EmailIndex",
188                 table: "AspNetUsers",
189                 column: "NormalizedEmail");
190 
191             migrationBuilder.CreateIndex(
192                 name: "UserNameIndex",
193                 table: "AspNetUsers",
194                 column: "NormalizedUserName",
195                 unique: true,
196                 filter: "[NormalizedUserName] IS NOT NULL");
197         }
198 
Down(MigrationBuilder migrationBuilder)199         protected override void Down(MigrationBuilder migrationBuilder)
200         {
201             migrationBuilder.DropTable(
202                 name: "AspNetRoleClaims");
203 
204             migrationBuilder.DropTable(
205                 name: "AspNetUserClaims");
206 
207             migrationBuilder.DropTable(
208                 name: "AspNetUserLogins");
209 
210             migrationBuilder.DropTable(
211                 name: "AspNetUserRoles");
212 
213             migrationBuilder.DropTable(
214                 name: "AspNetUserTokens");
215 
216             migrationBuilder.DropTable(
217                 name: "AspNetRoles");
218 
219             migrationBuilder.DropTable(
220                 name: "AspNetUsers");
221         }
222     }
223 }
224