using Microsoft.EntityFrameworkCore.Migrations; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace Yavsc.Migrations.ConfigurationDb { /// public partial class init : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "ApiResources", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Enabled = table.Column(type: "boolean", nullable: false), Name = table.Column(type: "character varying(200)", maxLength: 200, nullable: false), DisplayName = table.Column(type: "character varying(200)", maxLength: 200, nullable: true), Description = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: true), AllowedAccessTokenSigningAlgorithms = table.Column(type: "character varying(100)", maxLength: 100, nullable: true), ShowInDiscoveryDocument = table.Column(type: "boolean", nullable: false), Created = table.Column(type: "timestamp with time zone", nullable: false), Updated = table.Column(type: "timestamp with time zone", nullable: true), LastAccessed = table.Column(type: "timestamp with time zone", nullable: true), NonEditable = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApiResources", x => x.Id); }); migrationBuilder.CreateTable( name: "ApiScopes", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Enabled = table.Column(type: "boolean", nullable: false), Name = table.Column(type: "character varying(200)", maxLength: 200, nullable: false), DisplayName = table.Column(type: "character varying(200)", maxLength: 200, nullable: true), Description = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: true), Required = table.Column(type: "boolean", nullable: false), Emphasize = table.Column(type: "boolean", nullable: false), ShowInDiscoveryDocument = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApiScopes", x => x.Id); }); migrationBuilder.CreateTable( name: "Clients", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Enabled = table.Column(type: "boolean", nullable: false), ClientId = table.Column(type: "character varying(200)", maxLength: 200, nullable: false), ProtocolType = table.Column(type: "character varying(200)", maxLength: 200, nullable: false), RequireClientSecret = table.Column(type: "boolean", nullable: false), ClientName = table.Column(type: "character varying(200)", maxLength: 200, nullable: true), Description = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: true), ClientUri = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: true), LogoUri = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: true), RequireConsent = table.Column(type: "boolean", nullable: false), AllowRememberConsent = table.Column(type: "boolean", nullable: false), AlwaysIncludeUserClaimsInIdToken = table.Column(type: "boolean", nullable: false), RequirePkce = table.Column(type: "boolean", nullable: false), AllowPlainTextPkce = table.Column(type: "boolean", nullable: false), RequireRequestObject = table.Column(type: "boolean", nullable: false), AllowAccessTokensViaBrowser = table.Column(type: "boolean", nullable: false), FrontChannelLogoutUri = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: true), FrontChannelLogoutSessionRequired = table.Column(type: "boolean", nullable: false), BackChannelLogoutUri = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: true), BackChannelLogoutSessionRequired = table.Column(type: "boolean", nullable: false), AllowOfflineAccess = table.Column(type: "boolean", nullable: false), IdentityTokenLifetime = table.Column(type: "integer", nullable: false), AllowedIdentityTokenSigningAlgorithms = table.Column(type: "character varying(100)", maxLength: 100, nullable: true), AccessTokenLifetime = table.Column(type: "integer", nullable: false), AuthorizationCodeLifetime = table.Column(type: "integer", nullable: false), ConsentLifetime = table.Column(type: "integer", nullable: true), AbsoluteRefreshTokenLifetime = table.Column(type: "integer", nullable: false), SlidingRefreshTokenLifetime = table.Column(type: "integer", nullable: false), RefreshTokenUsage = table.Column(type: "integer", nullable: false), UpdateAccessTokenClaimsOnRefresh = table.Column(type: "boolean", nullable: false), RefreshTokenExpiration = table.Column(type: "integer", nullable: false), AccessTokenType = table.Column(type: "integer", nullable: false), EnableLocalLogin = table.Column(type: "boolean", nullable: false), IncludeJwtId = table.Column(type: "boolean", nullable: false), AlwaysSendClientClaims = table.Column(type: "boolean", nullable: false), ClientClaimsPrefix = table.Column(type: "character varying(200)", maxLength: 200, nullable: true), PairWiseSubjectSalt = table.Column(type: "character varying(200)", maxLength: 200, nullable: true), Created = table.Column(type: "timestamp with time zone", nullable: false), Updated = table.Column(type: "timestamp with time zone", nullable: true), LastAccessed = table.Column(type: "timestamp with time zone", nullable: true), UserSsoLifetime = table.Column(type: "integer", nullable: true), UserCodeType = table.Column(type: "character varying(100)", maxLength: 100, nullable: true), DeviceCodeLifetime = table.Column(type: "integer", nullable: false), NonEditable = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Clients", x => x.Id); }); migrationBuilder.CreateTable( name: "IdentityResources", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Enabled = table.Column(type: "boolean", nullable: false), Name = table.Column(type: "character varying(200)", maxLength: 200, nullable: false), DisplayName = table.Column(type: "character varying(200)", maxLength: 200, nullable: true), Description = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: true), Required = table.Column(type: "boolean", nullable: false), Emphasize = table.Column(type: "boolean", nullable: false), ShowInDiscoveryDocument = table.Column(type: "boolean", nullable: false), Created = table.Column(type: "timestamp with time zone", nullable: false), Updated = table.Column(type: "timestamp with time zone", nullable: true), NonEditable = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_IdentityResources", x => x.Id); }); migrationBuilder.CreateTable( name: "ApiResourceClaims", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ApiResourceId = table.Column(type: "integer", nullable: false), Type = table.Column(type: "character varying(200)", maxLength: 200, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApiResourceClaims", x => x.Id); table.ForeignKey( name: "FK_ApiResourceClaims_ApiResources_ApiResourceId", column: x => x.ApiResourceId, principalTable: "ApiResources", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApiResourceProperties", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ApiResourceId = table.Column(type: "integer", nullable: false), Key = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), Value = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApiResourceProperties", x => x.Id); table.ForeignKey( name: "FK_ApiResourceProperties_ApiResources_ApiResourceId", column: x => x.ApiResourceId, principalTable: "ApiResources", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApiResourceScopes", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Scope = table.Column(type: "character varying(200)", maxLength: 200, nullable: false), ApiResourceId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApiResourceScopes", x => x.Id); table.ForeignKey( name: "FK_ApiResourceScopes_ApiResources_ApiResourceId", column: x => x.ApiResourceId, principalTable: "ApiResources", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApiResourceSecrets", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ApiResourceId = table.Column(type: "integer", nullable: false), Description = table.Column(type: "character varying(1000)", maxLength: 1000, nullable: true), Value = table.Column(type: "character varying(4000)", maxLength: 4000, nullable: false), Expiration = table.Column(type: "timestamp with time zone", nullable: true), Type = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), Created = table.Column(type: "timestamp with time zone", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApiResourceSecrets", x => x.Id); table.ForeignKey( name: "FK_ApiResourceSecrets_ApiResources_ApiResourceId", column: x => x.ApiResourceId, principalTable: "ApiResources", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApiScopeClaims", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ScopeId = table.Column(type: "integer", nullable: false), Type = table.Column(type: "character varying(200)", maxLength: 200, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApiScopeClaims", x => x.Id); table.ForeignKey( name: "FK_ApiScopeClaims_ApiScopes_ScopeId", column: x => x.ScopeId, principalTable: "ApiScopes", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApiScopeProperties", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ScopeId = table.Column(type: "integer", nullable: false), Key = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), Value = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApiScopeProperties", x => x.Id); table.ForeignKey( name: "FK_ApiScopeProperties_ApiScopes_ScopeId", column: x => x.ScopeId, principalTable: "ApiScopes", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientClaims", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Type = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), Value = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), ClientId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientClaims", x => x.Id); table.ForeignKey( name: "FK_ClientClaims_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientCorsOrigins", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Origin = table.Column(type: "character varying(150)", maxLength: 150, nullable: false), ClientId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientCorsOrigins", x => x.Id); table.ForeignKey( name: "FK_ClientCorsOrigins_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientGrantTypes", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), GrantType = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), ClientId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientGrantTypes", x => x.Id); table.ForeignKey( name: "FK_ClientGrantTypes_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientIdPRestrictions", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Provider = table.Column(type: "character varying(200)", maxLength: 200, nullable: false), ClientId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientIdPRestrictions", x => x.Id); table.ForeignKey( name: "FK_ClientIdPRestrictions_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientPostLogoutRedirectUris", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), PostLogoutRedirectUri = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: false), ClientId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientPostLogoutRedirectUris", x => x.Id); table.ForeignKey( name: "FK_ClientPostLogoutRedirectUris_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientProperties", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ClientId = table.Column(type: "integer", nullable: false), Key = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), Value = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientProperties", x => x.Id); table.ForeignKey( name: "FK_ClientProperties_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientRedirectUris", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), RedirectUri = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: false), ClientId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientRedirectUris", x => x.Id); table.ForeignKey( name: "FK_ClientRedirectUris_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientScopes", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), Scope = table.Column(type: "character varying(200)", maxLength: 200, nullable: false), ClientId = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientScopes", x => x.Id); table.ForeignKey( name: "FK_ClientScopes_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ClientSecrets", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ClientId = table.Column(type: "integer", nullable: false), Description = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: true), Value = table.Column(type: "character varying(4000)", maxLength: 4000, nullable: false), Expiration = table.Column(type: "timestamp with time zone", nullable: true), Type = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), Created = table.Column(type: "timestamp with time zone", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ClientSecrets", x => x.Id); table.ForeignKey( name: "FK_ClientSecrets_Clients_ClientId", column: x => x.ClientId, principalTable: "Clients", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "IdentityResourceClaims", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), IdentityResourceId = table.Column(type: "integer", nullable: false), Type = table.Column(type: "character varying(200)", maxLength: 200, nullable: false) }, constraints: table => { table.PrimaryKey("PK_IdentityResourceClaims", x => x.Id); table.ForeignKey( name: "FK_IdentityResourceClaims_IdentityResources_IdentityResourceId", column: x => x.IdentityResourceId, principalTable: "IdentityResources", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "IdentityResourceProperties", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), IdentityResourceId = table.Column(type: "integer", nullable: false), Key = table.Column(type: "character varying(250)", maxLength: 250, nullable: false), Value = table.Column(type: "character varying(2000)", maxLength: 2000, nullable: false) }, constraints: table => { table.PrimaryKey("PK_IdentityResourceProperties", x => x.Id); table.ForeignKey( name: "FK_IdentityResourceProperties_IdentityResources_IdentityResour~", column: x => x.IdentityResourceId, principalTable: "IdentityResources", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_ApiResourceClaims_ApiResourceId", table: "ApiResourceClaims", column: "ApiResourceId"); migrationBuilder.CreateIndex( name: "IX_ApiResourceProperties_ApiResourceId", table: "ApiResourceProperties", column: "ApiResourceId"); migrationBuilder.CreateIndex( name: "IX_ApiResources_Name", table: "ApiResources", column: "Name", unique: true); migrationBuilder.CreateIndex( name: "IX_ApiResourceScopes_ApiResourceId", table: "ApiResourceScopes", column: "ApiResourceId"); migrationBuilder.CreateIndex( name: "IX_ApiResourceSecrets_ApiResourceId", table: "ApiResourceSecrets", column: "ApiResourceId"); migrationBuilder.CreateIndex( name: "IX_ApiScopeClaims_ScopeId", table: "ApiScopeClaims", column: "ScopeId"); migrationBuilder.CreateIndex( name: "IX_ApiScopeProperties_ScopeId", table: "ApiScopeProperties", column: "ScopeId"); migrationBuilder.CreateIndex( name: "IX_ApiScopes_Name", table: "ApiScopes", column: "Name", unique: true); migrationBuilder.CreateIndex( name: "IX_ClientClaims_ClientId", table: "ClientClaims", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_ClientCorsOrigins_ClientId", table: "ClientCorsOrigins", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_ClientGrantTypes_ClientId", table: "ClientGrantTypes", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_ClientIdPRestrictions_ClientId", table: "ClientIdPRestrictions", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_ClientPostLogoutRedirectUris_ClientId", table: "ClientPostLogoutRedirectUris", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_ClientProperties_ClientId", table: "ClientProperties", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_ClientRedirectUris_ClientId", table: "ClientRedirectUris", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_Clients_ClientId", table: "Clients", column: "ClientId", unique: true); migrationBuilder.CreateIndex( name: "IX_ClientScopes_ClientId", table: "ClientScopes", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_ClientSecrets_ClientId", table: "ClientSecrets", column: "ClientId"); migrationBuilder.CreateIndex( name: "IX_IdentityResourceClaims_IdentityResourceId", table: "IdentityResourceClaims", column: "IdentityResourceId"); migrationBuilder.CreateIndex( name: "IX_IdentityResourceProperties_IdentityResourceId", table: "IdentityResourceProperties", column: "IdentityResourceId"); migrationBuilder.CreateIndex( name: "IX_IdentityResources_Name", table: "IdentityResources", column: "Name", unique: true); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "ApiResourceClaims"); migrationBuilder.DropTable( name: "ApiResourceProperties"); migrationBuilder.DropTable( name: "ApiResourceScopes"); migrationBuilder.DropTable( name: "ApiResourceSecrets"); migrationBuilder.DropTable( name: "ApiScopeClaims"); migrationBuilder.DropTable( name: "ApiScopeProperties"); migrationBuilder.DropTable( name: "ClientClaims"); migrationBuilder.DropTable( name: "ClientCorsOrigins"); migrationBuilder.DropTable( name: "ClientGrantTypes"); migrationBuilder.DropTable( name: "ClientIdPRestrictions"); migrationBuilder.DropTable( name: "ClientPostLogoutRedirectUris"); migrationBuilder.DropTable( name: "ClientProperties"); migrationBuilder.DropTable( name: "ClientRedirectUris"); migrationBuilder.DropTable( name: "ClientScopes"); migrationBuilder.DropTable( name: "ClientSecrets"); migrationBuilder.DropTable( name: "IdentityResourceClaims"); migrationBuilder.DropTable( name: "IdentityResourceProperties"); migrationBuilder.DropTable( name: "ApiResources"); migrationBuilder.DropTable( name: "ApiScopes"); migrationBuilder.DropTable( name: "Clients"); migrationBuilder.DropTable( name: "IdentityResources"); } } }