Created
June 17, 2023 13:28
-
-
Save majorsilence/723f6cf4e0bb97380f7832fb1f1134f0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using FluentMigrator; | |
namespace Majorsilence.WebSite.DatabaseMigrations.Migrations; | |
[Migration(1, "CreateIdentitySchema")] | |
public class CreateIdentitySchema : Migration | |
{ | |
public override void Up() | |
{ | |
Create.Table("AspNetRoles") | |
.WithColumn("Id").AsString().NotNullable().PrimaryKey("PK_AspNetRoles") | |
.WithColumn("Name").AsString(256).Nullable() | |
.WithColumn("NormalizedName").AsString(256).Nullable() | |
.WithColumn("ConcurrencyStamp").AsString().Nullable(); | |
Create.Table("AspNetUsers") | |
.WithColumn("Id").AsString().NotNullable().PrimaryKey("PK_AspNetUsers") | |
.WithColumn("UserName").AsString(256).Nullable() | |
.WithColumn("NormalizedUserName").AsString(256).Nullable() | |
.WithColumn("Email").AsString(256).Nullable() | |
.WithColumn("NormalizedEmail").AsString(256).Nullable() | |
.WithColumn("EmailConfirmed").AsBoolean().NotNullable() | |
.WithColumn("PasswordHash").AsString().Nullable() | |
.WithColumn("SecurityStamp").AsString().Nullable() | |
.WithColumn("ConcurrencyStamp").AsString().Nullable() | |
.WithColumn("PhoneNumber").AsString().Nullable() | |
.WithColumn("PhoneNumberConfirmed").AsBoolean().NotNullable() | |
.WithColumn("TwoFactorEnabled").AsBoolean().NotNullable() | |
.WithColumn("LockoutEnabled").AsBoolean().NotNullable() | |
.WithColumn("AccessFailedCount").AsInt32().NotNullable(); | |
IfDatabase("sqlserver").Alter.Table("AspNetUsers").AddColumn("LockoutEnd").AsDateTimeOffset().NotNullable(); | |
IfDatabase("postgresql").Alter.Table("AspNetUsers").AddColumn("LockoutEnd").AsDateTimeOffset().NotNullable(); | |
IfDatabase("sqlite").Alter.Table("AspNetUsers").AddColumn("LockoutEnd").AsDateTime().NotNullable(); | |
Create.Table("AspNetRoleClaims") | |
.WithColumn("Id").AsInt64().NotNullable().PrimaryKey("PK_AspNetRoleClaims").Identity() | |
.WithColumn("RoleId").AsString().NotNullable() | |
.WithColumn("ClaimType").AsString().Nullable() | |
.WithColumn("ClaimValue").AsString().Nullable(); | |
Create | |
.ForeignKey( | |
"FK_AspNetRoleClaims_AspNetRoles_RoleId") | |
.FromTable("AspNetRoleClaims").ForeignColumn("RoleId") | |
.ToTable("AspNetRoles").PrimaryColumn("Id") | |
.OnDeleteOrUpdate(System.Data.Rule.Cascade); | |
Create.Table("AspNetUserClaims") | |
.WithColumn("Id").AsInt64().NotNullable().PrimaryKey("PK_AspNetUserClaims").Identity() | |
.WithColumn("UserId").AsString().NotNullable() | |
.WithColumn("ClaimType").AsString().Nullable() | |
.WithColumn("ClaimValue").AsString().Nullable(); | |
Create | |
.ForeignKey( | |
"FK_AspNetUserClaims_AspNetUsers_UserId") | |
.FromTable("AspNetUserClaims").ForeignColumn("UserId") | |
.ToTable("AspNetUsers").PrimaryColumn("Id") | |
.OnDeleteOrUpdate(System.Data.Rule.Cascade); | |
Create.Table("AspNetUserLogins") | |
.WithColumn("LoginProvider").AsString(128).NotNullable() | |
.WithColumn("ProviderKey").AsString(128).NotNullable() | |
.WithColumn("ProviderDisplayName").AsString().Nullable() | |
.WithColumn("UserId").AsString().NotNullable(); | |
Create.PrimaryKey("PK_AspNetUserLogins") | |
.OnTable("AspNetUserLogins") | |
.Columns("LoginProvider", "ProviderKey"); | |
Create | |
.ForeignKey( | |
"FK_AspNetUserLogins_AspNetUsers_UserId") | |
.FromTable("AspNetUserLogins").ForeignColumn("UserId") | |
.ToTable("AspNetUsers").PrimaryColumn("Id") | |
.OnDeleteOrUpdate(System.Data.Rule.Cascade); | |
Create.Table("AspNetUserRoles") | |
.WithColumn("UserId").AsString().NotNullable() | |
.WithColumn("RoleId").AsString().NotNullable(); | |
Create.PrimaryKey("PK_AspNetUserRoles") | |
.OnTable("AspNetUserRoles") | |
.Columns("UserId", "RoleId"); | |
Create | |
.ForeignKey( | |
"FK_AspNetUserRoles_AspNetRoles_RoleId") | |
.FromTable("AspNetUserRoles").ForeignColumn("RoleId") | |
.ToTable("AspNetRoles").PrimaryColumn("Id") | |
.OnDeleteOrUpdate(System.Data.Rule.Cascade); | |
Create | |
.ForeignKey( | |
"FK_AspNetUserRoles_AspNetUsers_UserId") | |
.FromTable("AspNetUserRoles").ForeignColumn("UserId") | |
.ToTable("AspNetUsers").PrimaryColumn("Id") | |
.OnDeleteOrUpdate(System.Data.Rule.Cascade); | |
Create.Table("AspNetUserTokens") | |
.WithColumn("UserId").AsString().NotNullable() | |
.WithColumn("LoginProvider").AsString(128).NotNullable() | |
.WithColumn("Name").AsString(128).NotNullable() | |
.WithColumn("Value").AsString().Nullable(); | |
Create.PrimaryKey("PK_AspNetUserTokens") | |
.OnTable("AspNetUserTokens") | |
.Columns("UserId", "LoginProvider", "Name"); | |
Create | |
.ForeignKey( | |
"FK_AspNetUserTokens_AspNetUsers_UserId") | |
.FromTable("AspNetUserTokens").ForeignColumn("UserId") | |
.ToTable("AspNetUsers").PrimaryColumn("Id") | |
.OnDeleteOrUpdate(System.Data.Rule.Cascade); | |
Create.Index("IX_AspNetRoleClaims_RoleId").OnTable("AspNetRoleClaims").OnColumn("RoleId"); | |
Create.Index("RoleNameIndex").OnTable("AspNetRoles").OnColumn("NormalizedName").Unique(); | |
Create.Index("IX_AspNetUserClaims_UserId").OnTable("AspNetUserClaims").OnColumn("UserId"); | |
Create.Index("IX_AspNetUserLogins_UserId").OnTable("AspNetUserLogins").OnColumn("UserId"); | |
Create.Index("IX_AspNetUserRoles_RoleId").OnTable("AspNetUserRoles").OnColumn("RoleId"); | |
Create.Index("EmailIndex").OnTable("AspNetUsers").OnColumn("NormalizedEmail"); | |
Create.Index("UserNameIndex").OnTable("AspNetUsers").OnColumn("NormalizedUserName").Unique(); | |
} | |
public override void Down() | |
{ | |
Delete.Table("AspNetRoleClaims"); | |
Delete.Table("AspNetUserClaims"); | |
Delete.Table("AspNetUserLogins"); | |
Delete.Table("AspNetUserRoles"); | |
Delete.Table("AspNetUserTokens"); | |
Delete.Table("AspNetRoles"); | |
Delete.Table("AspNetUsers"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment