using System; using System.Collections.Generic; using Iceshrimp.Backend.Core.Database.Tables; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Iceshrimp.Backend.Core.Database.Migrations { /// public partial class Initial : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterDatabase() .Annotation("Npgsql:Enum:antenna_src_enum", "home,all,users,list,group,instances") .Annotation("Npgsql:Enum:log_level_enum", "error,warning,info,success,debug") .Annotation("Npgsql:Enum:note_visibility_enum", "public,home,followers,specified,hidden") .Annotation("Npgsql:Enum:notification_type_enum", "follow,mention,reply,renote,quote,reaction,pollVote,pollEnded,receiveFollowRequest,followRequestAccepted,groupInvited,app") .Annotation("Npgsql:Enum:page_visibility_enum", "public,followers,specified") .Annotation("Npgsql:Enum:poll_notevisibility_enum", "public,home,followers,specified,hidden") .Annotation("Npgsql:Enum:relay_status_enum", "requesting,accepted,rejected") .Annotation("Npgsql:Enum:user_profile_ffvisibility_enum", "public,followers,private") .Annotation("Npgsql:Enum:user_profile_mutingnotificationtypes_enum", "follow,mention,reply,renote,quote,reaction,pollVote,pollEnded,receiveFollowRequest,followRequestAccepted,groupInvited,app") .Annotation("Npgsql:PostgresExtension:pg_trgm", ",,"); migrationBuilder.CreateTable( name: "announcement", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Announcement."), text = table.Column(type: "character varying(8192)", maxLength: 8192, nullable: false), title = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), imageUrl = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: true), updatedAt = table.Column(type: "timestamp with time zone", nullable: true, comment: "The updated date of the Announcement."), showPopup = table.Column(type: "boolean", nullable: false, defaultValue: false), isGoodNews = table.Column(type: "boolean", nullable: false, defaultValue: false) }, constraints: table => { table.PrimaryKey("PK_e0ef0550174fd1099a308fd18a0", x => x.id); }); migrationBuilder.CreateTable( name: "emoji", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), updatedAt = table.Column(type: "timestamp with time zone", nullable: true), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), host = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), originalUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: false), uri = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), type = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), aliases = table.Column>(type: "character varying(128)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), category = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), publicUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: false, defaultValueSql: "''::character varying"), license = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: true), width = table.Column(type: "integer", nullable: true, comment: "Image width"), height = table.Column(type: "integer", nullable: true, comment: "Image height") }, constraints: table => { table.PrimaryKey("PK_df74ce05e24999ee01ea0bc50a3", x => x.id); }); migrationBuilder.CreateTable( name: "hashtag", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), mentionedUserIds = table.Column>(type: "character varying(32)[]", nullable: false), mentionedUsersCount = table.Column(type: "integer", nullable: false, defaultValue: 0), mentionedLocalUserIds = table.Column>(type: "character varying(32)[]", nullable: false), mentionedLocalUsersCount = table.Column(type: "integer", nullable: false, defaultValue: 0), mentionedRemoteUserIds = table.Column>(type: "character varying(32)[]", nullable: false), mentionedRemoteUsersCount = table.Column(type: "integer", nullable: false, defaultValue: 0), attachedUserIds = table.Column>(type: "character varying(32)[]", nullable: false), attachedUsersCount = table.Column(type: "integer", nullable: false, defaultValue: 0), attachedLocalUserIds = table.Column>(type: "character varying(32)[]", nullable: false), attachedLocalUsersCount = table.Column(type: "integer", nullable: false, defaultValue: 0), attachedRemoteUserIds = table.Column>(type: "character varying(32)[]", nullable: false), attachedRemoteUsersCount = table.Column(type: "integer", nullable: false, defaultValue: 0) }, constraints: table => { table.PrimaryKey("PK_cb36eb8af8412bfa978f1165d78", x => x.id); }); migrationBuilder.CreateTable( name: "instance", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), caughtAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The caught date of the Instance."), host = table.Column(type: "character varying(512)", maxLength: 512, nullable: false, comment: "The host of the Instance."), usersCount = table.Column(type: "integer", nullable: false, defaultValue: 0, comment: "The count of the users of the Instance."), notesCount = table.Column(type: "integer", nullable: false, defaultValue: 0, comment: "The count of the notes of the Instance."), followingCount = table.Column(type: "integer", nullable: false, defaultValue: 0), followersCount = table.Column(type: "integer", nullable: false, defaultValue: 0), latestRequestSentAt = table.Column(type: "timestamp with time zone", nullable: true), latestStatus = table.Column(type: "integer", nullable: true), latestRequestReceivedAt = table.Column(type: "timestamp with time zone", nullable: true), lastCommunicatedAt = table.Column(type: "timestamp with time zone", nullable: false), isNotResponding = table.Column(type: "boolean", nullable: false, defaultValue: false), softwareName = table.Column(type: "character varying(64)", maxLength: 64, nullable: true, comment: "The software of the Instance."), softwareVersion = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), openRegistrations = table.Column(type: "boolean", nullable: true), name = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), description = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: true), maintainerName = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), maintainerEmail = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), infoUpdatedAt = table.Column(type: "timestamp with time zone", nullable: true), isSuspended = table.Column(type: "boolean", nullable: false, defaultValue: false), iconUrl = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: true), themeColor = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), faviconUrl = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: true) }, constraints: table => { table.PrimaryKey("PK_eaf60e4a0c399c9935413e06474", x => x.id); }); migrationBuilder.CreateTable( name: "meta", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), description = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: true), maintainerName = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), maintainerEmail = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), disableRegistration = table.Column(type: "boolean", nullable: false, defaultValue: false), disableLocalTimeline = table.Column(type: "boolean", nullable: false, defaultValue: false), disableGlobalTimeline = table.Column(type: "boolean", nullable: false, defaultValue: false), langs = table.Column>(type: "character varying(64)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), hiddenTags = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), blockedHosts = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), mascotImageUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, defaultValueSql: "'/static-assets/badges/info.png'::character varying"), bannerUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), errorImageUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, defaultValueSql: "'/static-assets/badges/error.png'::character varying"), iconUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), cacheRemoteFiles = table.Column(type: "boolean", nullable: false, defaultValue: false), enableRecaptcha = table.Column(type: "boolean", nullable: false, defaultValue: false), recaptchaSiteKey = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), recaptchaSecretKey = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), localDriveCapacityMb = table.Column(type: "integer", nullable: false, defaultValue: 1024, comment: "Drive capacity of a local user (MB)"), remoteDriveCapacityMb = table.Column(type: "integer", nullable: false, defaultValue: 32, comment: "Drive capacity of a remote user (MB)"), summalyProxy = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), enableEmail = table.Column(type: "boolean", nullable: false, defaultValue: false), email = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), smtpSecure = table.Column(type: "boolean", nullable: false, defaultValue: false), smtpHost = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), smtpPort = table.Column(type: "integer", nullable: true), smtpUser = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: true), smtpPass = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: true), swPublicKey = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), swPrivateKey = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), enableGithubIntegration = table.Column(type: "boolean", nullable: false, defaultValue: false), githubClientId = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), githubClientSecret = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), enableDiscordIntegration = table.Column(type: "boolean", nullable: false, defaultValue: false), discordClientId = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), discordClientSecret = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), pinnedUsers = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), ToSUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), repositoryUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: false, defaultValueSql: "'https://iceshrimp.dev/iceshrimp/iceshrimp'::character varying"), feedbackUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, defaultValueSql: "'https://iceshrimp.dev/iceshrimp/iceshrimp/issues/new'::character varying"), useObjectStorage = table.Column(type: "boolean", nullable: false, defaultValue: false), objectStorageBucket = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), objectStoragePrefix = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), objectStorageBaseUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), objectStorageEndpoint = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), objectStorageRegion = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), objectStorageAccessKey = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), objectStorageSecretKey = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), objectStoragePort = table.Column(type: "integer", nullable: true), objectStorageUseSSL = table.Column(type: "boolean", nullable: false, defaultValue: true), objectStorageUseProxy = table.Column(type: "boolean", nullable: false, defaultValue: true), enableHcaptcha = table.Column(type: "boolean", nullable: false, defaultValue: false), hcaptchaSiteKey = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), hcaptchaSecretKey = table.Column(type: "character varying(64)", maxLength: 64, nullable: true), objectStorageSetPublicRead = table.Column(type: "boolean", nullable: false, defaultValue: false), pinnedPages = table.Column>(type: "character varying(512)[]", nullable: false, defaultValueSql: "'{/featured,/channels,/explore,/pages,/about-iceshrimp}'::character varying[]"), backgroundImageUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), logoImageUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), pinnedClipId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), objectStorageS3ForcePathStyle = table.Column(type: "boolean", nullable: false, defaultValue: true), allowedHosts = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), secureMode = table.Column(type: "boolean", nullable: false, defaultValue: true), privateMode = table.Column(type: "boolean", nullable: false, defaultValue: false), deeplAuthKey = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), deeplIsPro = table.Column(type: "boolean", nullable: false, defaultValue: false), emailRequiredForSignup = table.Column(type: "boolean", nullable: false, defaultValue: false), themeColor = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), defaultLightTheme = table.Column(type: "character varying(8192)", maxLength: 8192, nullable: true), defaultDarkTheme = table.Column(type: "character varying(8192)", maxLength: 8192, nullable: true), enableIpLogging = table.Column(type: "boolean", nullable: false, defaultValue: false), enableActiveEmailValidation = table.Column(type: "boolean", nullable: false, defaultValue: true), customMOTD = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), customSplashIcons = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), disableRecommendedTimeline = table.Column(type: "boolean", nullable: false, defaultValue: true), recommendedInstances = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), defaultReaction = table.Column(type: "character varying(256)", maxLength: 256, nullable: false, defaultValueSql: "'⭐'::character varying"), libreTranslateApiUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), libreTranslateApiKey = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), silencedHosts = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), experimentalFeatures = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'{}'::jsonb"), enableServerMachineStats = table.Column(type: "boolean", nullable: false, defaultValue: false), enableIdenticonGeneration = table.Column(type: "boolean", nullable: false, defaultValue: true), donationLink = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), autofollowedAccount = table.Column(type: "character varying(128)", maxLength: 128, nullable: true) }, constraints: table => { table.PrimaryKey("PK_c4c17a6c2bd7651338b60fc590b", x => x.id); }); migrationBuilder.CreateTable( name: "oauth_app", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the OAuth application"), clientId = table.Column(type: "character varying(64)", maxLength: 64, nullable: false, comment: "The client id of the OAuth application"), clientSecret = table.Column(type: "character varying(64)", maxLength: 64, nullable: false, comment: "The client secret of the OAuth application"), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The name of the OAuth application"), website = table.Column(type: "character varying(256)", maxLength: 256, nullable: true, comment: "The website of the OAuth application"), scopes = table.Column>(type: "character varying(64)[]", nullable: false, comment: "The scopes requested by the OAuth application"), redirectUris = table.Column>(type: "character varying(512)[]", nullable: false, comment: "The redirect URIs of the OAuth application") }, constraints: table => { table.PrimaryKey("PK_3256b97c0a3ee2d67240805dca4", x => x.id); }); migrationBuilder.CreateTable( name: "registration_ticket", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false), code = table.Column(type: "character varying(64)", maxLength: 64, nullable: false) }, constraints: table => { table.PrimaryKey("PK_f11696b6fafcf3662d4292734f8", x => x.id); }); migrationBuilder.CreateTable( name: "relay", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), inbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: false), status = table.Column(type: "relay_status_enum", nullable: false) }, constraints: table => { table.PrimaryKey("PK_78ebc9cfddf4292633b7ba57aee", x => x.id); }); migrationBuilder.CreateTable( name: "used_username", columns: table => new { username = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false) }, constraints: table => { table.PrimaryKey("PK_78fd79d2d24c6ac2f4cc9a31a5d", x => x.username); }); migrationBuilder.CreateTable( name: "user_pending", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false), code = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), username = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), email = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), password = table.Column(type: "character varying(128)", maxLength: 128, nullable: false) }, constraints: table => { table.PrimaryKey("PK_d4c84e013c98ec02d19b8fbbafa", x => x.id); }); migrationBuilder.CreateTable( name: "abuse_user_report", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the AbuseUserReport."), targetUserId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), reporterId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), assigneeId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), resolved = table.Column(type: "boolean", nullable: false, defaultValue: false), comment = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: false), targetUserHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), reporterHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), forwarded = table.Column(type: "boolean", nullable: false, defaultValue: false) }, constraints: table => { table.PrimaryKey("PK_87873f5f5cc5c321a1306b2d18c", x => x.id); }); migrationBuilder.CreateTable( name: "access_token", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the AccessToken."), token = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), hash = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), appId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), lastUsedAt = table.Column(type: "timestamp with time zone", nullable: true), session = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), description = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), iconUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), permission = table.Column>(type: "character varying(64)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), fetched = table.Column(type: "boolean", nullable: false, defaultValue: false) }, constraints: table => { table.PrimaryKey("PK_f20f028607b2603deabd8182d12", x => x.id); }); migrationBuilder.CreateTable( name: "announcement_read", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), announcementId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the AnnouncementRead.") }, constraints: table => { table.PrimaryKey("PK_4b90ad1f42681d97b2683890c5e", x => x.id); table.ForeignKey( name: "FK_603a7b1e7aa0533c6c88e9bfafe", column: x => x.announcementId, principalTable: "announcement", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "antenna", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Antenna."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The owner ID."), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The name of the Antenna."), src = table.Column(type: "antenna_src_enum", nullable: false), userListId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), keywords = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb"), withFile = table.Column(type: "boolean", nullable: false), expression = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: true), notify = table.Column(type: "boolean", nullable: false), caseSensitive = table.Column(type: "boolean", nullable: false, defaultValue: false), withReplies = table.Column(type: "boolean", nullable: false, defaultValue: false), userGroupJoiningId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), users = table.Column>(type: "character varying(1024)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), excludeKeywords = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb"), instances = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb") }, constraints: table => { table.PrimaryKey("PK_c170b99775e1dccca947c9f2d5f", x => x.id); }); migrationBuilder.CreateTable( name: "app", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the App."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The owner ID."), secret = table.Column(type: "character varying(64)", maxLength: 64, nullable: false, comment: "The secret key of the App."), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The name of the App."), description = table.Column(type: "character varying(512)", maxLength: 512, nullable: false, comment: "The description of the App."), permission = table.Column>(type: "character varying(64)[]", nullable: false, comment: "The permission of the App."), callbackUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The callbackUrl of the App.") }, constraints: table => { table.PrimaryKey("PK_9478629fc093d229df09e560aea", x => x.id); }); migrationBuilder.CreateTable( name: "attestation_challenge", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), challenge = table.Column(type: "character varying(64)", maxLength: 64, nullable: false, comment: "Hex-encoded sha256 hash of the challenge."), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The date challenge was created for expiry purposes."), registrationChallenge = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.") }, constraints: table => { table.PrimaryKey("PK_d0ba6786e093f1bcb497572a6b5", x => new { x.id, x.userId }); }); migrationBuilder.CreateTable( name: "auth_session", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the AuthSession."), token = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), appId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_19354ed146424a728c1112a8cbf", x => x.id); table.ForeignKey( name: "FK_dbe037d4bddd17b03a1dc778dee", column: x => x.appId, principalTable: "app", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "blocking", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Blocking."), blockeeId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The blockee user ID."), blockerId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The blocker user ID.") }, constraints: table => { table.PrimaryKey("PK_e5d9a541cc1965ee7e048ea09dd", x => x.id); }); migrationBuilder.CreateTable( name: "channel", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Channel."), lastNotedAt = table.Column(type: "timestamp with time zone", nullable: true), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The owner ID."), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The name of the Channel."), description = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: true, comment: "The description of the Channel."), bannerId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The ID of banner Channel."), notesCount = table.Column(type: "integer", nullable: false, defaultValue: 0, comment: "The count of notes."), usersCount = table.Column(type: "integer", nullable: false, defaultValue: 0, comment: "The count of users.") }, constraints: table => { table.PrimaryKey("PK_590f33ee6ee7d76437acf362e39", x => x.id); }); migrationBuilder.CreateTable( name: "channel_following", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the ChannelFollowing."), followeeId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The followee channel ID."), followerId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The follower user ID.") }, constraints: table => { table.PrimaryKey("PK_8b104be7f7415113f2a02cd5bdd", x => x.id); table.ForeignKey( name: "FK_0e43068c3f92cab197c3d3cd86e", column: x => x.followeeId, principalTable: "channel", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "channel_note_pining", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the ChannelNotePining."), channelId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_44f7474496bcf2e4b741681146d", x => x.id); table.ForeignKey( name: "FK_8125f950afd3093acb10d2db8a8", column: x => x.channelId, principalTable: "channel", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "clip", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Clip."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The owner ID."), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The name of the Clip."), isPublic = table.Column(type: "boolean", nullable: false, defaultValue: false), description = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: true, comment: "The description of the Clip.") }, constraints: table => { table.PrimaryKey("PK_f0685dac8d4dd056d7255670b75", x => x.id); }); migrationBuilder.CreateTable( name: "clip_note", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The note ID."), clipId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The clip ID.") }, constraints: table => { table.PrimaryKey("PK_e94cda2f40a99b57e032a1a738b", x => x.id); table.ForeignKey( name: "FK_ebe99317bbbe9968a0c6f579adf", column: x => x.clipId, principalTable: "clip", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "drive_file", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the DriveFile."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The owner ID."), userHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The host of owner. It will be null if the user in local."), md5 = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The MD5 hash of the DriveFile."), name = table.Column(type: "character varying(256)", maxLength: 256, nullable: false, comment: "The file name of the DriveFile."), type = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The content type (MIME) of the DriveFile."), size = table.Column(type: "integer", nullable: false, comment: "The file size (bytes) of the DriveFile."), comment = table.Column(type: "character varying(8192)", maxLength: 8192, nullable: true, comment: "The comment of the DriveFile."), properties = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'{}'::jsonb", comment: "The any properties of the DriveFile. For example, it includes image width/height."), storedInternal = table.Column(type: "boolean", nullable: false), url = table.Column(type: "character varying(512)", maxLength: 512, nullable: false, comment: "The URL of the DriveFile."), thumbnailUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URL of the thumbnail of the DriveFile."), webpublicUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URL of the webpublic of the DriveFile."), accessKey = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), thumbnailAccessKey = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), webpublicAccessKey = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), uri = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URI of the DriveFile. it will be null when the DriveFile is local."), src = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), folderId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The parent folder ID. If null, it means the DriveFile is located in root."), isSensitive = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the DriveFile is NSFW."), isLink = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the DriveFile is direct link to remote server."), blurhash = table.Column(type: "character varying(128)", maxLength: 128, nullable: true, comment: "The BlurHash string."), webpublicType = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), requestHeaders = table.Column(type: "jsonb", nullable: true, defaultValueSql: "'{}'::jsonb"), requestIp = table.Column(type: "character varying(128)", maxLength: 128, nullable: true) }, constraints: table => { table.PrimaryKey("PK_43ddaaaf18c9e68029b7cbb032e", x => x.id); }); migrationBuilder.CreateTable( name: "user", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the User."), updatedAt = table.Column(type: "timestamp with time zone", nullable: true, comment: "The updated date of the User."), lastFetchedAt = table.Column(type: "timestamp with time zone", nullable: true), username = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The username of the User."), usernameLower = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The username (lowercased) of the User."), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: true, comment: "The name of the User."), followersCount = table.Column(type: "integer", nullable: false, defaultValue: 0, comment: "The count of followers."), followingCount = table.Column(type: "integer", nullable: false, defaultValue: 0, comment: "The count of following."), notesCount = table.Column(type: "integer", nullable: false, defaultValue: 0, comment: "The count of notes."), avatarId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The ID of avatar DriveFile."), bannerId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The ID of banner DriveFile."), tags = table.Column>(type: "character varying(128)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), isSuspended = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the User is suspended."), isSilenced = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the User is silenced."), isLocked = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the User is locked."), isBot = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the User is a bot."), isCat = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the User is a cat."), isAdmin = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the User is the admin."), isModerator = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the User is a moderator."), emojis = table.Column>(type: "character varying(128)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), host = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The host of the User. It will be null if the origin of the user is local."), inbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The inbox URL of the User. It will be null if the origin of the user is local."), sharedInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The sharedInbox URL of the User. It will be null if the origin of the user is local."), featured = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The featured URL of the User. It will be null if the origin of the user is local."), uri = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URI of the User. It will be null if the origin of the user is local."), token = table.Column(type: "character(16)", fixedLength: true, maxLength: 16, nullable: true, comment: "The native access token of the User. It will be null if the origin of the user is local."), isExplorable = table.Column(type: "boolean", nullable: false, defaultValue: true, comment: "Whether the User is explorable."), followersUri = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URI of the user Follower Collection. It will be null if the origin of the user is local."), lastActiveDate = table.Column(type: "timestamp with time zone", nullable: true), hideOnlineStatus = table.Column(type: "boolean", nullable: false, defaultValue: false), isDeleted = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the User is deleted."), driveCapacityOverrideMb = table.Column(type: "integer", nullable: true, comment: "Overrides user drive capacity limit"), movedToUri = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URI of the new account of the User"), alsoKnownAs = table.Column(type: "text", nullable: true, comment: "URIs the user is known as too"), speakAsCat = table.Column(type: "boolean", nullable: false, defaultValue: true, comment: "Whether to speak as a cat if isCat."), avatarUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URL of the avatar DriveFile"), avatarBlurhash = table.Column(type: "character varying(128)", maxLength: 128, nullable: true, comment: "The blurhash of the avatar DriveFile"), bannerUrl = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URL of the banner DriveFile"), bannerBlurhash = table.Column(type: "character varying(128)", maxLength: 128, nullable: true, comment: "The blurhash of the banner DriveFile") }, constraints: table => { table.PrimaryKey("PK_cace4a159ff9f2512dd42373760", x => x.id); table.ForeignKey( name: "FK_58f5c71eaab331645112cf8cfa5", column: x => x.avatarId, principalTable: "drive_file", principalColumn: "id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_afc64b53f8db3707ceb34eb28e2", column: x => x.bannerId, principalTable: "drive_file", principalColumn: "id", onDelete: ReferentialAction.SetNull); }); migrationBuilder.CreateTable( name: "drive_folder", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the DriveFolder."), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The name of the DriveFolder."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The owner ID."), parentId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The parent folder ID. If null, it means the DriveFolder is located in root.") }, constraints: table => { table.PrimaryKey("PK_7a0c089191f5ebdc214e0af808a", x => x.id); table.ForeignKey( name: "FK_00ceffb0cdc238b3233294f08f2", column: x => x.parentId, principalTable: "drive_folder", principalColumn: "id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_f4fc06e49c0171c85f1c48060d2", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "follow_request", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the FollowRequest."), followeeId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The followee user ID."), followerId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The follower user ID."), requestId = table.Column(type: "character varying(128)", maxLength: 128, nullable: true, comment: "id of Follow Activity."), followerHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followerInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followerSharedInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followeeHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followeeInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followeeSharedInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]") }, constraints: table => { table.PrimaryKey("PK_53a9aa3725f7a3deb150b39dbfc", x => x.id); table.ForeignKey( name: "FK_12c01c0d1a79f77d9f6c15fadd2", column: x => x.followeeId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_a7fd92dd6dc519e6fb435dd108f", column: x => x.followerId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "following", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Following."), followeeId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The followee user ID."), followerId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The follower user ID."), followerHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followerInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followerSharedInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followeeHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followeeInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), followeeSharedInbox = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]") }, constraints: table => { table.PrimaryKey("PK_c76c6e044bdf76ecf8bfb82a645", x => x.id); table.ForeignKey( name: "FK_24e0042143a18157b234df186c3", column: x => x.followeeId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_6516c5a6f3c015b4eed39978be5", column: x => x.followerId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "gallery_post", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the GalleryPost."), updatedAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The updated date of the GalleryPost."), title = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), description = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: true), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The ID of author."), fileIds = table.Column>(type: "character varying(32)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), isSensitive = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the post is sensitive."), likedCount = table.Column(type: "integer", nullable: false, defaultValue: 0), tags = table.Column>(type: "character varying(128)[]", nullable: false, defaultValueSql: "'{}'::character varying[]") }, constraints: table => { table.PrimaryKey("PK_8e90d7b6015f2c4518881b14753", x => x.id); table.ForeignKey( name: "FK_985b836dddd8615e432d7043ddb", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "html_user_cache_entry", columns: table => new { userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), updatedAt = table.Column(type: "timestamp with time zone", nullable: true), bio = table.Column(type: "text", nullable: true), fields = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb") }, constraints: table => { table.PrimaryKey("PK_920b9474e3c9cae3f3c37c057e1", x => x.userId); table.ForeignKey( name: "FK_920b9474e3c9cae3f3c37c057e1", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "moderation_log", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the ModerationLog."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), type = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), info = table.Column(type: "jsonb", nullable: false) }, constraints: table => { table.PrimaryKey("PK_d0adca6ecfd068db83e4526cc26", x => x.id); table.ForeignKey( name: "FK_a08ad074601d204e0f69da9a954", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "muting", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Muting."), muteeId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The mutee user ID."), muterId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The muter user ID."), expiresAt = table.Column(type: "timestamp with time zone", nullable: true) }, constraints: table => { table.PrimaryKey("PK_2e92d06c8b5c602eeb27ca9ba48", x => x.id); table.ForeignKey( name: "FK_93060675b4a79a577f31d260c67", column: x => x.muterId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ec96b4fed9dae517e0dbbe0675c", column: x => x.muteeId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "note", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Note."), replyId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The ID of reply target."), renoteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The ID of renote target."), text = table.Column(type: "text", nullable: true), name = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), cw = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The ID of author."), visibility = table.Column(type: "note_visibility_enum", nullable: false), localOnly = table.Column(type: "boolean", nullable: false, defaultValue: false), renoteCount = table.Column(type: "smallint", nullable: false, defaultValue: (short)0), repliesCount = table.Column(type: "smallint", nullable: false, defaultValue: (short)0), reactions = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'{}'::jsonb"), uri = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The URI of a note. it will be null when the note is local."), score = table.Column(type: "integer", nullable: false, defaultValue: 0), fileIds = table.Column>(type: "character varying(32)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), attachedFileTypes = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), visibleUserIds = table.Column>(type: "character varying(32)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), mentions = table.Column>(type: "character varying(32)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), mentionedRemoteUsers = table.Column(type: "text", nullable: false, defaultValueSql: "'[]'::text"), emojis = table.Column>(type: "character varying(128)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), tags = table.Column>(type: "character varying(128)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), hasPoll = table.Column(type: "boolean", nullable: false, defaultValue: false), userHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), replyUserId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "[Denormalized]"), replyUserHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), renoteUserId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "[Denormalized]"), renoteUserHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), url = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "The human readable url of a note. it will be null when the note is local."), channelId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The ID of source channel."), threadId = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), updatedAt = table.Column(type: "timestamp with time zone", nullable: true, comment: "The updated date of the Note.") }, constraints: table => { table.PrimaryKey("PK_96d0c172a4fba276b1bbed43058", x => x.id); table.ForeignKey( name: "FK_17cb3553c700a4985dff5a30ff5", column: x => x.replyId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_52ccc804d7c69037d558bac4c96", column: x => x.renoteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_5b87d9d19127bd5d92026017a7b", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_f22169eb10657bded6d875ac8f9", column: x => x.channelId, principalTable: "channel", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "note_thread_muting", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), threadId = table.Column(type: "character varying(256)", maxLength: 256, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ec5936d94d1a0369646d12a3a47", x => x.id); table.ForeignKey( name: "FK_29c11c7deb06615076f8c95b80a", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "oauth_token", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the OAuth token"), appId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), code = table.Column(type: "character varying(64)", maxLength: 64, nullable: false, comment: "The auth code for the OAuth token"), token = table.Column(type: "character varying(64)", maxLength: 64, nullable: false, comment: "The OAuth token"), active = table.Column(type: "boolean", nullable: false, comment: "Whether or not the token has been activated"), scopes = table.Column>(type: "character varying(64)[]", nullable: false, comment: "The scopes requested by the OAuth token"), redirectUri = table.Column(type: "character varying(512)", maxLength: 512, nullable: false, comment: "The redirect URI of the OAuth token") }, constraints: table => { table.PrimaryKey("PK_7e6a25a3cc4395d1658f5b89c73", x => x.id); table.ForeignKey( name: "FK_6d3ef28ea647b1449ba79690874", column: x => x.appId, principalTable: "oauth_app", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_f6b4b1ac66b753feab5d831ba04", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "page", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Page."), updatedAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The updated date of the Page."), title = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), name = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), visibility = table.Column(type: "page_visibility_enum", nullable: false), summary = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), alignCenter = table.Column(type: "boolean", nullable: false), font = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The ID of author."), eyeCatchingImageId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), content = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb"), variables = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb"), visibleUserIds = table.Column>(type: "character varying(32)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), likedCount = table.Column(type: "integer", nullable: false, defaultValue: 0), hideTitleWhenPinned = table.Column(type: "boolean", nullable: false, defaultValue: false), script = table.Column(type: "character varying(16384)", maxLength: 16384, nullable: false, defaultValueSql: "''::character varying"), isPublic = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_742f4117e065c5b6ad21b37ba1f", x => x.id); table.ForeignKey( name: "FK_a9ca79ad939bf06066b81c9d3aa", column: x => x.eyeCatchingImageId, principalTable: "drive_file", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ae1d917992dd0c9d9bbdad06c4a", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "password_reset_request", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false), token = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_fcf4b02eae1403a2edaf87fd074", x => x.id); table.ForeignKey( name: "FK_4bb7fd4a34492ae0e6cc8d30ac8", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "registry_item", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the RegistryItem."), updatedAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The updated date of the RegistryItem."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The owner ID."), key = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "The key of the RegistryItem."), scope = table.Column>(type: "character varying(1024)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), domain = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), value = table.Column(type: "jsonb", nullable: true, defaultValueSql: "'{}'::jsonb", comment: "The value of the RegistryItem.") }, constraints: table => { table.PrimaryKey("PK_64b3f7e6008b4d89b826cd3af95", x => x.id); table.ForeignKey( name: "FK_fb9d21ba0abb83223263df6bcb3", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "renote_muting", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Muting."), muteeId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The mutee user ID."), muterId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The muter user ID.") }, constraints: table => { table.PrimaryKey("PK_renoteMuting_id", x => x.id); table.ForeignKey( name: "FK_7aa72a5fe76019bfe8e5e0e8b7d", column: x => x.muterId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_7eac97594bcac5ffcf2068089b6", column: x => x.muteeId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "session", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the OAuth token"), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), token = table.Column(type: "character varying(64)", maxLength: 64, nullable: false, comment: "The authorization token"), active = table.Column(type: "boolean", nullable: false, comment: "Whether or not the token has been activated (i.e. 2fa has been confirmed)") }, constraints: table => { table.PrimaryKey("PK_f55da76ac1c3ac420f444d2ff11", x => x.id); table.ForeignKey( name: "FK_3d2f174ef04fb312fdebd0ddc53", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "signin", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Signin."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), ip = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), headers = table.Column(type: "jsonb", nullable: false), success = table.Column(type: "boolean", nullable: false) }, constraints: table => { table.PrimaryKey("PK_9e96ddc025712616fc492b3b588", x => x.id); table.ForeignKey( name: "FK_2c308dbdc50d94dc625670055f7", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "sw_subscription", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), endpoint = table.Column(type: "character varying(512)", maxLength: 512, nullable: false), auth = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), publickey = table.Column(type: "character varying(128)", maxLength: 128, nullable: false), sendReadMessage = table.Column(type: "boolean", nullable: false, defaultValue: false) }, constraints: table => { table.PrimaryKey("PK_e8f763631530051b95eb6279b91", x => x.id); table.ForeignKey( name: "FK_97754ca6f2baff9b4abb7f853dd", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_group", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the UserGroup."), name = table.Column(type: "character varying(256)", maxLength: 256, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The ID of owner."), isPrivate = table.Column(type: "boolean", nullable: false, defaultValue: false) }, constraints: table => { table.PrimaryKey("PK_3c29fba6fe013ec8724378ce7c9", x => x.id); table.ForeignKey( name: "FK_3d6b372788ab01be58853003c93", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_keypair", columns: table => new { userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), publicKey = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: false), privateKey = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: false) }, constraints: table => { table.PrimaryKey("PK_f4853eb41ab722fe05f81cedeb6", x => x.userId); table.ForeignKey( name: "FK_f4853eb41ab722fe05f81cedeb6", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_list", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the UserList."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The owner ID."), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The name of the UserList."), hideFromHomeTl = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether posts from list members should be hidden from the home timeline.") }, constraints: table => { table.PrimaryKey("PK_87bab75775fd9b1ff822b656402", x => x.id); table.ForeignKey( name: "FK_b7fcefbdd1c18dce86687531f99", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_publickey", columns: table => new { userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), keyId = table.Column(type: "character varying(512)", maxLength: 512, nullable: false), keyPem = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: false) }, constraints: table => { table.PrimaryKey("PK_10c146e4b39b443ede016f6736d", x => x.userId); table.ForeignKey( name: "FK_10c146e4b39b443ede016f6736d", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_security_key", columns: table => new { id = table.Column(type: "character varying", nullable: false, comment: "Variable-length id given to navigator.credentials.get()"), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), publicKey = table.Column(type: "character varying", nullable: false, comment: "Variable-length public key used to verify attestations (hex-encoded)."), lastUsed = table.Column(type: "timestamp with time zone", nullable: false, comment: "The date of the last time the UserSecurityKey was successfully validated."), name = table.Column(type: "character varying(30)", maxLength: 30, nullable: false, comment: "User-defined name for this key") }, constraints: table => { table.PrimaryKey("PK_3e508571121ab39c5f85d10c166", x => x.id); table.ForeignKey( name: "FK_ff9ca3b5f3ee3d0681367a9b447", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "webhook", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Antenna."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The owner ID."), name = table.Column(type: "character varying(128)", maxLength: 128, nullable: false, comment: "The name of the Antenna."), on = table.Column>(type: "character varying(128)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), url = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false), secret = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: false), active = table.Column(type: "boolean", nullable: false, defaultValue: true), latestSentAt = table.Column(type: "timestamp with time zone", nullable: true), latestStatus = table.Column(type: "integer", nullable: true) }, constraints: table => { table.PrimaryKey("PK_e6765510c2d078db49632b59020", x => x.id); table.ForeignKey( name: "FK_f272c8c8805969e6a6449c77b3c", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "gallery_like", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), postId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_853ab02be39b8de45cd720cc15f", x => x.id); table.ForeignKey( name: "FK_8fd5215095473061855ceb948cf", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_b1cb568bfe569e47b7051699fc8", column: x => x.postId, principalTable: "gallery_post", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "html_note_cache_entry", columns: table => new { noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), updatedAt = table.Column(type: "timestamp with time zone", nullable: true), content = table.Column(type: "text", nullable: true) }, constraints: table => { table.PrimaryKey("PK_6ef86ec901b2017cbe82d3a8286", x => x.noteId); table.ForeignKey( name: "FK_6ef86ec901b2017cbe82d3a8286", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "note_edit", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The ID of note."), text = table.Column(type: "text", nullable: true), cw = table.Column(type: "character varying(512)", maxLength: 512, nullable: true), fileIds = table.Column>(type: "character varying(32)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), updatedAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The updated date of the Note.") }, constraints: table => { table.PrimaryKey("PK_736fc6e0d4e222ecc6f82058e08", x => x.id); table.ForeignKey( name: "FK_702ad5ae993a672e4fbffbcd38c", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "note_favorite", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the NoteFavorite."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_af0da35a60b9fa4463a62082b36", x => x.id); table.ForeignKey( name: "FK_0e00498f180193423c992bc4370", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_47f4b1892f5d6ba8efb3057d81a", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "note_reaction", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the NoteReaction."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), reaction = table.Column(type: "character varying(260)", maxLength: 260, nullable: false) }, constraints: table => { table.PrimaryKey("PK_767ec729b108799b587a3fcc9cf", x => x.id); table.ForeignKey( name: "FK_13761f64257f40c5636d0ff95ee", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_45145e4953780f3cd5656f0ea6a", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "note_unread", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteUserId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "[Denormalized]"), isSpecified = table.Column(type: "boolean", nullable: false), isMentioned = table.Column(type: "boolean", nullable: false), noteChannelId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "[Denormalized]") }, constraints: table => { table.PrimaryKey("PK_1904eda61a784f57e6e51fa9c1f", x => x.id); table.ForeignKey( name: "FK_56b0166d34ddae49d8ef7610bb9", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_e637cba4dc4410218c4251260e4", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "note_watching", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the NoteWatching."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The watcher ID."), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The target Note ID."), noteUserId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "[Denormalized]") }, constraints: table => { table.PrimaryKey("PK_49286fdb23725945a74aa27d757", x => x.id); table.ForeignKey( name: "FK_03e7028ab8388a3f5e3ce2a8619", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_b0134ec406e8d09a540f8182888", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "poll", columns: table => new { noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), expiresAt = table.Column(type: "timestamp with time zone", nullable: true), multiple = table.Column(type: "boolean", nullable: false), choices = table.Column>(type: "character varying(256)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), votes = table.Column>(type: "integer[]", nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "[Denormalized]"), userHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), noteVisibility = table.Column(type: "poll_notevisibility_enum", nullable: false, comment: "[Denormalized]") }, constraints: table => { table.PrimaryKey("PK_da851e06d0dfe2ef397d8b1bf1b", x => x.noteId); table.ForeignKey( name: "FK_da851e06d0dfe2ef397d8b1bf1b", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "poll_vote", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the PollVote."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), choice = table.Column(type: "integer", nullable: false) }, constraints: table => { table.PrimaryKey("PK_fd002d371201c472490ba89c6a0", x => x.id); table.ForeignKey( name: "FK_66d2bd2ee31d14bcc23069a89f8", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_aecfbd5ef60374918e63ee95fa7", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "promo_note", columns: table => new { noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), expiresAt = table.Column(type: "timestamp with time zone", nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "[Denormalized]") }, constraints: table => { table.PrimaryKey("PK_e263909ca4fe5d57f8d4230dd5c", x => x.noteId); table.ForeignKey( name: "FK_e263909ca4fe5d57f8d4230dd5c", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "promo_read", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the PromoRead."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_61917c1541002422b703318b7c9", x => x.id); table.ForeignKey( name: "FK_9657d55550c3d37bfafaf7d4b05", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_a46a1a603ecee695d7db26da5f4", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_note_pining", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the UserNotePinings."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_a6a2dad4ae000abce2ea9d9b103", x => x.id); table.ForeignKey( name: "FK_68881008f7c3588ad7ecae471cf", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_bfbc6f79ba4007b4ce5097f08d6", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "page_like", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), pageId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_813f034843af992d3ae0f43c64c", x => x.id); table.ForeignKey( name: "FK_0e61efab7f88dbb79c9166dbb48", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_cf8782626dced3176038176a847", column: x => x.pageId, principalTable: "page", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_profile", columns: table => new { userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), location = table.Column(type: "character varying(128)", maxLength: 128, nullable: true, comment: "The location of the User."), birthday = table.Column(type: "character(10)", fixedLength: true, maxLength: 10, nullable: true, comment: "The birthday (YYYY-MM-DD) of the User."), description = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: true, comment: "The description (bio) of the User."), fields = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb"), url = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "Remote URL of the user."), ffVisibility = table.Column(type: "user_profile_ffvisibility_enum", nullable: false, defaultValue: UserProfile.UserProfileFFVisibility.Public), mutingNotificationTypes = table.Column>(type: "user_profile_mutingnotificationtypes_enum[]", nullable: false, defaultValueSql: "'{}'::public.user_profile_mutingnotificationtypes_enum[]"), email = table.Column(type: "character varying(128)", maxLength: 128, nullable: true, comment: "The email address of the User."), emailVerifyCode = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), emailVerified = table.Column(type: "boolean", nullable: false, defaultValue: false), twoFactorTempSecret = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), twoFactorSecret = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), twoFactorEnabled = table.Column(type: "boolean", nullable: false, defaultValue: false), password = table.Column(type: "character varying(128)", maxLength: 128, nullable: true, comment: "The password hash of the User. It will be null if the origin of the user is local."), clientData = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'{}'::jsonb", comment: "The client-specific data of the User."), autoAcceptFollowed = table.Column(type: "boolean", nullable: false, defaultValue: false), alwaysMarkNsfw = table.Column(type: "boolean", nullable: false, defaultValue: false), carefulBot = table.Column(type: "boolean", nullable: false, defaultValue: false), userHost = table.Column(type: "character varying(512)", maxLength: 512, nullable: true, comment: "[Denormalized]"), securityKeysAvailable = table.Column(type: "boolean", nullable: false, defaultValue: false), usePasswordLessLogin = table.Column(type: "boolean", nullable: false, defaultValue: false), pinnedPageId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), room = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'{}'::jsonb", comment: "The room data of the User."), integrations = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'{}'::jsonb"), injectFeaturedNote = table.Column(type: "boolean", nullable: false, defaultValue: true), enableWordMute = table.Column(type: "boolean", nullable: false, defaultValue: false), mutedWords = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb"), noCrawle = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether reject index by crawler."), receiveAnnouncementEmail = table.Column(type: "boolean", nullable: false, defaultValue: true), emailNotificationTypes = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[\"follow\", \"receiveFollowRequest\", \"groupInvited\"]'::jsonb"), lang = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), mutedInstances = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb", comment: "List of instances muted by the user."), publicReactions = table.Column(type: "boolean", nullable: false, defaultValue: false), moderationNote = table.Column(type: "character varying(8192)", maxLength: 8192, nullable: false, defaultValueSql: "''::character varying"), preventAiLearning = table.Column(type: "boolean", nullable: false, defaultValue: true), mentions = table.Column(type: "jsonb", nullable: false, defaultValueSql: "'[]'::jsonb") }, constraints: table => { table.PrimaryKey("PK_51cb79b5555effaf7d69ba1cff9", x => x.userId); table.ForeignKey( name: "FK_51cb79b5555effaf7d69ba1cff9", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_6dc44f1ceb65b1e72bacef2ca27", column: x => x.pinnedPageId, principalTable: "page", principalColumn: "id", onDelete: ReferentialAction.SetNull); }); migrationBuilder.CreateTable( name: "messaging_message", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the MessagingMessage."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The sender user ID."), recipientId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The recipient user ID."), text = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: true), isRead = table.Column(type: "boolean", nullable: false, defaultValue: false), fileId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), groupId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The recipient group ID."), reads = table.Column>(type: "character varying(32)[]", nullable: false, defaultValueSql: "'{}'::character varying[]"), uri = table.Column(type: "character varying(512)", maxLength: 512, nullable: true) }, constraints: table => { table.PrimaryKey("PK_db398fd79dc95d0eb8c30456eaa", x => x.id); table.ForeignKey( name: "FK_2c4be03b446884f9e9c502135be", column: x => x.groupId, principalTable: "user_group", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_535def119223ac05ad3fa9ef64b", column: x => x.fileId, principalTable: "drive_file", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_5377c307783fce2b6d352e1203b", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_cac14a4e3944454a5ce7daa5142", column: x => x.recipientId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_group_invitation", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the UserGroupInvitation."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The user ID."), userGroupId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The group ID.") }, constraints: table => { table.PrimaryKey("PK_160c63ec02bf23f6a5c5e8140d6", x => x.id); table.ForeignKey( name: "FK_5cc8c468090e129857e9fecce5a", column: x => x.userGroupId, principalTable: "user_group", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_bfbc6305547539369fe73eb144a", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_group_invite", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), userGroupId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false) }, constraints: table => { table.PrimaryKey("PK_3893884af0d3a5f4d01e7921a97", x => x.id); table.ForeignKey( name: "FK_1039988afa3bf991185b277fe03", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_e10924607d058004304611a436a", column: x => x.userGroupId, principalTable: "user_group", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_group_joining", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the UserGroupJoining."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The user ID."), userGroupId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The group ID.") }, constraints: table => { table.PrimaryKey("PK_15f2425885253c5507e1599cfe7", x => x.id); table.ForeignKey( name: "FK_67dc758bc0566985d1b3d399865", column: x => x.userGroupId, principalTable: "user_group", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_f3a1b4bd0c7cabba958a0c0b231", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "user_list_joining", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the UserListJoining."), userId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The user ID."), userListId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The list ID.") }, constraints: table => { table.PrimaryKey("PK_11abb3768da1c5f8de101c9df45", x => x.id); table.ForeignKey( name: "FK_605472305f26818cc93d1baaa74", column: x => x.userListId, principalTable: "user_list", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_d844bfc6f3f523a05189076efaa", column: x => x.userId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "notification", columns: table => new { id = table.Column(type: "character varying(32)", maxLength: 32, nullable: false), createdAt = table.Column(type: "timestamp with time zone", nullable: false, comment: "The created date of the Notification."), notifieeId = table.Column(type: "character varying(32)", maxLength: 32, nullable: false, comment: "The ID of recipient user of the Notification."), notifierId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true, comment: "The ID of sender user of the Notification."), isRead = table.Column(type: "boolean", nullable: false, defaultValue: false, comment: "Whether the notification was read."), type = table.Column(type: "notification_type_enum", nullable: false, comment: "The type of the Notification."), noteId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), reaction = table.Column(type: "character varying(128)", maxLength: 128, nullable: true), choice = table.Column(type: "integer", nullable: true), followRequestId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), userGroupInvitationId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true), customBody = table.Column(type: "character varying(2048)", maxLength: 2048, nullable: true), customHeader = table.Column(type: "character varying(256)", maxLength: 256, nullable: true), customIcon = table.Column(type: "character varying(1024)", maxLength: 1024, nullable: true), appAccessTokenId = table.Column(type: "character varying(32)", maxLength: 32, nullable: true) }, constraints: table => { table.PrimaryKey("PK_705b6c7cdf9b2c2ff7ac7872cb7", x => x.id); table.ForeignKey( name: "FK_3b4e96eec8d36a8bbb9d02aa710", column: x => x.notifierId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_3c601b70a1066d2c8b517094cb9", column: x => x.notifieeId, principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_769cb6b73a1efe22ddf733ac453", column: x => x.noteId, principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_8fe87814e978053a53b1beb7e98", column: x => x.userGroupInvitationId, principalTable: "user_group_invitation", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_bd7fab507621e635b32cd31892c", column: x => x.followRequestId, principalTable: "follow_request", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_e22bf6bda77b6adc1fd9e75c8c9", column: x => x.appAccessTokenId, principalTable: "access_token", principalColumn: "id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IDX_04cc96756f89d0b7f9473e8cdf", table: "abuse_user_report", column: "reporterId"); migrationBuilder.CreateIndex( name: "IDX_2b15aaf4a0dc5be3499af7ab6a", table: "abuse_user_report", column: "resolved"); migrationBuilder.CreateIndex( name: "IDX_4ebbf7f93cdc10e8d1ef2fc6cd", table: "abuse_user_report", column: "targetUserHost"); migrationBuilder.CreateIndex( name: "IDX_a9021cc2e1feb5f72d3db6e9f5", table: "abuse_user_report", column: "targetUserId"); migrationBuilder.CreateIndex( name: "IDX_db2098070b2b5a523c58181f74", table: "abuse_user_report", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_f8d8b93740ad12c4ce8213a199", table: "abuse_user_report", column: "reporterHost"); migrationBuilder.CreateIndex( name: "IX_abuse_user_report_assigneeId", table: "abuse_user_report", column: "assigneeId"); migrationBuilder.CreateIndex( name: "IDX_64c327441248bae40f7d92f34f", table: "access_token", column: "hash"); migrationBuilder.CreateIndex( name: "IDX_70ba8f6af34bc924fc9e12adb8", table: "access_token", column: "token"); migrationBuilder.CreateIndex( name: "IDX_9949557d0e1b2c19e5344c171e", table: "access_token", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_bf3a053c07d9fb5d87317c56ee", table: "access_token", column: "session"); migrationBuilder.CreateIndex( name: "IX_access_token_appId", table: "access_token", column: "appId"); migrationBuilder.CreateIndex( name: "IDX_118ec703e596086fc4515acb39", table: "announcement", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_603a7b1e7aa0533c6c88e9bfaf", table: "announcement_read", column: "announcementId"); migrationBuilder.CreateIndex( name: "IDX_8288151386172b8109f7239ab2", table: "announcement_read", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_924fa71815cfa3941d003702a0", table: "announcement_read", columns: new[] { "userId", "announcementId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_6446c571a0e8d0f05f01c78909", table: "antenna", column: "userId"); migrationBuilder.CreateIndex( name: "IX_antenna_userGroupJoiningId", table: "antenna", column: "userGroupJoiningId"); migrationBuilder.CreateIndex( name: "IX_antenna_userListId", table: "antenna", column: "userListId"); migrationBuilder.CreateIndex( name: "IDX_048a757923ed8b157e9895da53", table: "app", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_3f5b0899ef90527a3462d7c2cb", table: "app", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_f49922d511d666848f250663c4", table: "app", column: "secret"); migrationBuilder.CreateIndex( name: "IDX_47efb914aed1f72dd39a306c7b", table: "attestation_challenge", column: "challenge"); migrationBuilder.CreateIndex( name: "IDX_f1a461a618fa1755692d0e0d59", table: "attestation_challenge", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_62cb09e1129f6ec024ef66e183", table: "auth_session", column: "token"); migrationBuilder.CreateIndex( name: "IX_auth_session_appId", table: "auth_session", column: "appId"); migrationBuilder.CreateIndex( name: "IX_auth_session_userId", table: "auth_session", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_0627125f1a8a42c9a1929edb55", table: "blocking", column: "blockerId"); migrationBuilder.CreateIndex( name: "IDX_2cd4a2743a99671308f5417759", table: "blocking", column: "blockeeId"); migrationBuilder.CreateIndex( name: "IDX_98a1bc5cb30dfd159de056549f", table: "blocking", columns: new[] { "blockerId", "blockeeId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_b9a354f7941c1e779f3b33aea6", table: "blocking", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_094b86cd36bb805d1aa1e8cc9a", table: "channel", column: "usersCount"); migrationBuilder.CreateIndex( name: "IDX_0f58c11241e649d2a638a8de94", table: "channel", column: "notesCount"); migrationBuilder.CreateIndex( name: "IDX_29ef80c6f13bcea998447fce43", table: "channel", column: "lastNotedAt"); migrationBuilder.CreateIndex( name: "IDX_71cb7b435b7c0d4843317e7e16", table: "channel", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_823bae55bd81b3be6e05cff438", table: "channel", column: "userId"); migrationBuilder.CreateIndex( name: "IX_channel_bannerId", table: "channel", column: "bannerId"); migrationBuilder.CreateIndex( name: "IDX_0e43068c3f92cab197c3d3cd86", table: "channel_following", column: "followeeId"); migrationBuilder.CreateIndex( name: "IDX_11e71f2511589dcc8a4d3214f9", table: "channel_following", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_2e230dd45a10e671d781d99f3e", table: "channel_following", columns: new[] { "followerId", "followeeId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_6d8084ec9496e7334a4602707e", table: "channel_following", column: "followerId"); migrationBuilder.CreateIndex( name: "IDX_8125f950afd3093acb10d2db8a", table: "channel_note_pining", column: "channelId"); migrationBuilder.CreateIndex( name: "IDX_f36fed37d6d4cdcc68c803cd9c", table: "channel_note_pining", columns: new[] { "channelId", "noteId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_channel_note_pining_noteId", table: "channel_note_pining", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_2b5ec6c574d6802c94c80313fb", table: "clip", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_6fc0ec357d55a18646262fdfff", table: "clip_note", columns: new[] { "noteId", "clipId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_a012eaf5c87c65da1deb5fdbfa", table: "clip_note", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_ebe99317bbbe9968a0c6f579ad", table: "clip_note", column: "clipId"); migrationBuilder.CreateIndex( name: "IDX_315c779174fe8247ab324f036e", table: "drive_file", column: "isLink"); migrationBuilder.CreateIndex( name: "IDX_37bb9a1b4585f8a3beb24c62d6", table: "drive_file", column: "md5"); migrationBuilder.CreateIndex( name: "IDX_55720b33a61a7c806a8215b825", table: "drive_file", columns: new[] { "userId", "folderId", "id" }); migrationBuilder.CreateIndex( name: "IDX_860fa6f6c7df5bb887249fba22", table: "drive_file", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_92779627994ac79277f070c91e", table: "drive_file", column: "userHost"); migrationBuilder.CreateIndex( name: "IDX_a40b8df8c989d7db937ea27cf6", table: "drive_file", column: "type"); migrationBuilder.CreateIndex( name: "IDX_a7eba67f8b3fa27271e85d2e26", table: "drive_file", column: "isSensitive"); migrationBuilder.CreateIndex( name: "IDX_bb90d1956dafc4068c28aa7560", table: "drive_file", column: "folderId"); migrationBuilder.CreateIndex( name: "IDX_c55b2b7c284d9fef98026fc88e", table: "drive_file", column: "webpublicAccessKey", unique: true); migrationBuilder.CreateIndex( name: "IDX_c8dfad3b72196dd1d6b5db168a", table: "drive_file", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_d85a184c2540d2deba33daf642", table: "drive_file", column: "accessKey", unique: true); migrationBuilder.CreateIndex( name: "IDX_e5848eac4940934e23dbc17581", table: "drive_file", column: "uri"); migrationBuilder.CreateIndex( name: "IDX_e74022ce9a074b3866f70e0d27", table: "drive_file", column: "thumbnailAccessKey", unique: true); migrationBuilder.CreateIndex( name: "IDX_00ceffb0cdc238b3233294f08f", table: "drive_folder", column: "parentId"); migrationBuilder.CreateIndex( name: "IDX_02878d441ceae15ce060b73daf", table: "drive_folder", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_f4fc06e49c0171c85f1c48060d", table: "drive_folder", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_4f4d35e1256c84ae3d1f0eab10", table: "emoji", columns: new[] { "name", "host" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_5900e907bb46516ddf2871327c", table: "emoji", column: "host"); migrationBuilder.CreateIndex( name: "IDX_b37dafc86e9af007e3295c2781", table: "emoji", column: "name"); migrationBuilder.CreateIndex( name: "IDX_12c01c0d1a79f77d9f6c15fadd", table: "follow_request", column: "followeeId"); migrationBuilder.CreateIndex( name: "IDX_a7fd92dd6dc519e6fb435dd108", table: "follow_request", column: "followerId"); migrationBuilder.CreateIndex( name: "IDX_d54a512b822fac7ed52800f6b4", table: "follow_request", columns: new[] { "followerId", "followeeId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_24e0042143a18157b234df186c", table: "following", column: "followeeId"); migrationBuilder.CreateIndex( name: "IDX_307be5f1d1252e0388662acb96", table: "following", columns: new[] { "followerId", "followeeId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_4ccd2239268ebbd1b35e318754", table: "following", column: "followerHost"); migrationBuilder.CreateIndex( name: "IDX_582f8fab771a9040a12961f3e7", table: "following", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_6516c5a6f3c015b4eed39978be", table: "following", column: "followerId"); migrationBuilder.CreateIndex( name: "IDX_fcdafee716dfe9c3b5fde90f30", table: "following", column: "followeeHost"); migrationBuilder.CreateIndex( name: "IDX_8fd5215095473061855ceb948c", table: "gallery_like", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_df1b5f4099e99fb0bc5eae53b6", table: "gallery_like", columns: new[] { "userId", "postId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_gallery_like_postId", table: "gallery_like", column: "postId"); migrationBuilder.CreateIndex( name: "IDX_05cca34b985d1b8edc1d1e28df", table: "gallery_post", column: "tags"); migrationBuilder.CreateIndex( name: "IDX_1a165c68a49d08f11caffbd206", table: "gallery_post", column: "likedCount"); migrationBuilder.CreateIndex( name: "IDX_3ca50563facd913c425e7a89ee", table: "gallery_post", column: "fileIds"); migrationBuilder.CreateIndex( name: "IDX_8f1a239bd077c8864a20c62c2c", table: "gallery_post", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_985b836dddd8615e432d7043dd", table: "gallery_post", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_f2d744d9a14d0dfb8b96cb7fc5", table: "gallery_post", column: "isSensitive"); migrationBuilder.CreateIndex( name: "IDX_f631d37835adb04792e361807c", table: "gallery_post", column: "updatedAt"); migrationBuilder.CreateIndex( name: "IDX_0b03cbcd7e6a7ce068efa8ecc2", table: "hashtag", column: "attachedRemoteUsersCount"); migrationBuilder.CreateIndex( name: "IDX_0c44bf4f680964145f2a68a341", table: "hashtag", column: "attachedLocalUsersCount"); migrationBuilder.CreateIndex( name: "IDX_0e206cec573f1edff4a3062923", table: "hashtag", column: "mentionedLocalUsersCount"); migrationBuilder.CreateIndex( name: "IDX_2710a55f826ee236ea1a62698f", table: "hashtag", column: "mentionedUsersCount"); migrationBuilder.CreateIndex( name: "IDX_347fec870eafea7b26c8a73bac", table: "hashtag", column: "name", unique: true); migrationBuilder.CreateIndex( name: "IDX_4c02d38a976c3ae132228c6fce", table: "hashtag", column: "mentionedRemoteUsersCount"); migrationBuilder.CreateIndex( name: "IDX_d57f9030cd3af7f63ffb1c267c", table: "hashtag", column: "attachedUsersCount"); migrationBuilder.CreateIndex( name: "IDX_2cd3b2a6b4cf0b910b260afe08", table: "instance", column: "caughtAt"); migrationBuilder.CreateIndex( name: "IDX_34500da2e38ac393f7bb6b299c", table: "instance", column: "isSuspended"); migrationBuilder.CreateIndex( name: "IDX_8d5afc98982185799b160e10eb", table: "instance", column: "host", unique: true); migrationBuilder.CreateIndex( name: "IDX_2c4be03b446884f9e9c502135b", table: "messaging_message", column: "groupId"); migrationBuilder.CreateIndex( name: "IDX_5377c307783fce2b6d352e1203", table: "messaging_message", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_cac14a4e3944454a5ce7daa514", table: "messaging_message", column: "recipientId"); migrationBuilder.CreateIndex( name: "IDX_e21cd3646e52ef9c94aaf17c2e", table: "messaging_message", column: "createdAt"); migrationBuilder.CreateIndex( name: "IX_messaging_message_fileId", table: "messaging_message", column: "fileId"); migrationBuilder.CreateIndex( name: "IDX_a08ad074601d204e0f69da9a95", table: "moderation_log", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_1eb9d9824a630321a29fd3b290", table: "muting", columns: new[] { "muterId", "muteeId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_93060675b4a79a577f31d260c6", table: "muting", column: "muterId"); migrationBuilder.CreateIndex( name: "IDX_c1fd1c3dfb0627aa36c253fd14", table: "muting", column: "expiresAt"); migrationBuilder.CreateIndex( name: "IDX_ec96b4fed9dae517e0dbbe0675", table: "muting", column: "muteeId"); migrationBuilder.CreateIndex( name: "IDX_f86d57fbca33c7a4e6897490cc", table: "muting", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_153536c67d05e9adb24e99fc2b", table: "note", column: "uri", unique: true); migrationBuilder.CreateIndex( name: "IDX_17cb3553c700a4985dff5a30ff", table: "note", column: "replyId"); migrationBuilder.CreateIndex( name: "IDX_25dfc71b0369b003a4cd434d0b", table: "note", column: "attachedFileTypes"); migrationBuilder.CreateIndex( name: "IDX_51c063b6a133a9cb87145450f5", table: "note", column: "fileIds"); migrationBuilder.CreateIndex( name: "IDX_52ccc804d7c69037d558bac4c9", table: "note", column: "renoteId"); migrationBuilder.CreateIndex( name: "IDX_54ebcb6d27222913b908d56fd8", table: "note", column: "mentions"); migrationBuilder.CreateIndex( name: "IDX_5b87d9d19127bd5d92026017a7", table: "note", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_7125a826ab192eb27e11d358a5", table: "note", column: "userHost"); migrationBuilder.CreateIndex( name: "IDX_796a8c03959361f97dc2be1d5c", table: "note", column: "visibleUserIds"); migrationBuilder.CreateIndex( name: "IDX_88937d94d7443d9a99a76fa5c0", table: "note", column: "tags"); migrationBuilder.CreateIndex( name: "IDX_NOTE_MENTIONS", table: "note", column: "mentions") .Annotation("Npgsql:IndexMethod", "gin"); migrationBuilder.CreateIndex( name: "IDX_NOTE_TAGS", table: "note", column: "tags") .Annotation("Npgsql:IndexMethod", "gin"); migrationBuilder.CreateIndex( name: "IDX_NOTE_VISIBLE_USER_IDS", table: "note", column: "visibleUserIds") .Annotation("Npgsql:IndexMethod", "gin"); migrationBuilder.CreateIndex( name: "IDX_d4ebdef929896d6dc4a3c5bb48", table: "note", column: "threadId"); migrationBuilder.CreateIndex( name: "IDX_e7c0567f5261063592f022e9b5", table: "note", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_f22169eb10657bded6d875ac8f", table: "note", column: "channelId"); migrationBuilder.CreateIndex( name: "IDX_note_createdAt_userId", table: "note", columns: new[] { "createdAt", "userId" }); migrationBuilder.CreateIndex( name: "IDX_note_id_userHost", table: "note", columns: new[] { "id", "userHost" }); migrationBuilder.CreateIndex( name: "IDX_note_url", table: "note", column: "url"); migrationBuilder.CreateIndex( name: "IDX_note_userId_id", table: "note", columns: new[] { "userId", "id" }); migrationBuilder.CreateIndex( name: "note_text_fts_idx", table: "note", column: "text") .Annotation("Npgsql:IndexMethod", "gin") .Annotation("Npgsql:IndexOperators", new[] { "gin_trgm_ops" }); migrationBuilder.CreateIndex( name: "IDX_702ad5ae993a672e4fbffbcd38", table: "note_edit", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_0f4fb9ad355f3effff221ef245", table: "note_favorite", columns: new[] { "userId", "noteId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_47f4b1892f5d6ba8efb3057d81", table: "note_favorite", column: "userId"); migrationBuilder.CreateIndex( name: "IX_note_favorite_noteId", table: "note_favorite", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_01f4581f114e0ebd2bbb876f0b", table: "note_reaction", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_13761f64257f40c5636d0ff95e", table: "note_reaction", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_45145e4953780f3cd5656f0ea6", table: "note_reaction", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_ad0c221b25672daf2df320a817", table: "note_reaction", columns: new[] { "userId", "noteId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_29c11c7deb06615076f8c95b80", table: "note_thread_muting", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_ae7aab18a2641d3e5f25e0c4ea", table: "note_thread_muting", columns: new[] { "userId", "threadId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_c426394644267453e76f036926", table: "note_thread_muting", column: "threadId"); migrationBuilder.CreateIndex( name: "IDX_25b1dd384bec391b07b74b861c", table: "note_unread", column: "isMentioned"); migrationBuilder.CreateIndex( name: "IDX_29e8c1d579af54d4232939f994", table: "note_unread", column: "noteUserId"); migrationBuilder.CreateIndex( name: "IDX_56b0166d34ddae49d8ef7610bb", table: "note_unread", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_6a57f051d82c6d4036c141e107", table: "note_unread", column: "noteChannelId"); migrationBuilder.CreateIndex( name: "IDX_89a29c9237b8c3b6b3cbb4cb30", table: "note_unread", column: "isSpecified"); migrationBuilder.CreateIndex( name: "IDX_d908433a4953cc13216cd9c274", table: "note_unread", columns: new[] { "userId", "noteId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_e637cba4dc4410218c4251260e", table: "note_unread", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_03e7028ab8388a3f5e3ce2a861", table: "note_watching", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_318cdf42a9cfc11f479bd802bb", table: "note_watching", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_44499765eec6b5489d72c4253b", table: "note_watching", column: "noteUserId"); migrationBuilder.CreateIndex( name: "IDX_a42c93c69989ce1d09959df4cf", table: "note_watching", columns: new[] { "userId", "noteId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_b0134ec406e8d09a540f818288", table: "note_watching", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_080ab397c379af09b9d2169e5b", table: "notification", column: "isRead"); migrationBuilder.CreateIndex( name: "IDX_33f33cc8ef29d805a97ff4628b", table: "notification", column: "type"); migrationBuilder.CreateIndex( name: "IDX_3b4e96eec8d36a8bbb9d02aa71", table: "notification", column: "notifierId"); migrationBuilder.CreateIndex( name: "IDX_3c601b70a1066d2c8b517094cb", table: "notification", column: "notifieeId"); migrationBuilder.CreateIndex( name: "IDX_b11a5e627c41d4dc3170f1d370", table: "notification", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_e22bf6bda77b6adc1fd9e75c8c", table: "notification", column: "appAccessTokenId"); migrationBuilder.CreateIndex( name: "IX_notification_followRequestId", table: "notification", column: "followRequestId"); migrationBuilder.CreateIndex( name: "IX_notification_noteId", table: "notification", column: "noteId"); migrationBuilder.CreateIndex( name: "IX_notification_userGroupInvitationId", table: "notification", column: "userGroupInvitationId"); migrationBuilder.CreateIndex( name: "IDX_65b61f406c811241e1315a2f82", table: "oauth_app", column: "clientId", unique: true); migrationBuilder.CreateIndex( name: "IDX_2cbeb4b389444bcf4379ef4273", table: "oauth_token", column: "token"); migrationBuilder.CreateIndex( name: "IDX_dc5fe174a8b59025055f0ec136", table: "oauth_token", column: "code"); migrationBuilder.CreateIndex( name: "IX_oauth_token_appId", table: "oauth_token", column: "appId"); migrationBuilder.CreateIndex( name: "IX_oauth_token_userId", table: "oauth_token", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_2133ef8317e4bdb839c0dcbf13", table: "page", columns: new[] { "userId", "name" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_90148bbc2bf0854428786bfc15", table: "page", column: "visibleUserIds"); migrationBuilder.CreateIndex( name: "IDX_ae1d917992dd0c9d9bbdad06c4", table: "page", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_af639b066dfbca78b01a920f8a", table: "page", column: "updatedAt"); migrationBuilder.CreateIndex( name: "IDX_b82c19c08afb292de4600d99e4", table: "page", column: "name"); migrationBuilder.CreateIndex( name: "IDX_fbb4297c927a9b85e9cefa2eb1", table: "page", column: "createdAt"); migrationBuilder.CreateIndex( name: "IX_page_eyeCatchingImageId", table: "page", column: "eyeCatchingImageId"); migrationBuilder.CreateIndex( name: "IDX_0e61efab7f88dbb79c9166dbb4", table: "page_like", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_4ce6fb9c70529b4c8ac46c9bfa", table: "page_like", columns: new[] { "userId", "pageId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_page_like_pageId", table: "page_like", column: "pageId"); migrationBuilder.CreateIndex( name: "IDX_0b575fa9a4cfe638a925949285", table: "password_reset_request", column: "token", unique: true); migrationBuilder.CreateIndex( name: "IDX_4bb7fd4a34492ae0e6cc8d30ac", table: "password_reset_request", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_0610ebcfcfb4a18441a9bcdab2", table: "poll", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_7fa20a12319c7f6dc3aed98c0a", table: "poll", column: "userHost"); migrationBuilder.CreateIndex( name: "IDX_0fb627e1c2f753262a74f0562d", table: "poll_vote", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_50bd7164c5b78f1f4a42c4d21f", table: "poll_vote", columns: new[] { "userId", "noteId", "choice" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_66d2bd2ee31d14bcc23069a89f", table: "poll_vote", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_aecfbd5ef60374918e63ee95fa", table: "poll_vote", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_83f0862e9bae44af52ced7099e", table: "promo_note", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_2882b8a1a07c7d281a98b6db16", table: "promo_read", columns: new[] { "userId", "noteId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_9657d55550c3d37bfafaf7d4b0", table: "promo_read", column: "userId"); migrationBuilder.CreateIndex( name: "IX_promo_read_noteId", table: "promo_read", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_0ff69e8dfa9fe31bb4a4660f59", table: "registration_ticket", column: "code", unique: true); migrationBuilder.CreateIndex( name: "IDX_0a72bdfcdb97c0eca11fe7ecad", table: "registry_item", column: "domain"); migrationBuilder.CreateIndex( name: "IDX_22baca135bb8a3ea1a83d13df3", table: "registry_item", column: "scope"); migrationBuilder.CreateIndex( name: "IDX_fb9d21ba0abb83223263df6bcb", table: "registry_item", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_0d9a1738f2cf7f3b1c3334dfab", table: "relay", column: "inbox", unique: true); migrationBuilder.CreateIndex( name: "IDX_0d801c609cec4e9eb4b6b4490c", table: "renote_muting", columns: new[] { "muterId", "muteeId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_7aa72a5fe76019bfe8e5e0e8b7", table: "renote_muting", column: "muterId"); migrationBuilder.CreateIndex( name: "IDX_7eac97594bcac5ffcf2068089b", table: "renote_muting", column: "muteeId"); migrationBuilder.CreateIndex( name: "IDX_d1259a2c2b7bb413ff449e8711", table: "renote_muting", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_232f8e85d7633bd6ddfad42169", table: "session", column: "token"); migrationBuilder.CreateIndex( name: "IX_session_userId", table: "session", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_2c308dbdc50d94dc625670055f", table: "signin", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_97754ca6f2baff9b4abb7f853d", table: "sw_subscription", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_3252a5df8d5bbd16b281f7799e", table: "user", column: "host"); migrationBuilder.CreateIndex( name: "IDX_5deb01ae162d1d70b80d064c27", table: "user", columns: new[] { "usernameLower", "host" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_80ca6e6ef65fb9ef34ea8c90f4", table: "user", column: "updatedAt"); migrationBuilder.CreateIndex( name: "IDX_a27b942a0d6dcff90e3ee9b5e8", table: "user", column: "usernameLower"); migrationBuilder.CreateIndex( name: "IDX_a854e557b1b14814750c7c7b0c", table: "user", column: "token", unique: true); migrationBuilder.CreateIndex( name: "IDX_be623adaa4c566baf5d29ce0c8", table: "user", column: "uri"); migrationBuilder.CreateIndex( name: "IDX_c8cc87bd0f2f4487d17c651fbf", table: "user", column: "lastActiveDate"); migrationBuilder.CreateIndex( name: "IDX_d5a1b83c7cab66f167e6888188", table: "user", column: "isExplorable"); migrationBuilder.CreateIndex( name: "IDX_e11e649824a45d8ed01d597fd9", table: "user", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_fa99d777623947a5b05f394cae", table: "user", column: "tags"); migrationBuilder.CreateIndex( name: "REL_58f5c71eaab331645112cf8cfa", table: "user", column: "avatarId", unique: true); migrationBuilder.CreateIndex( name: "REL_afc64b53f8db3707ceb34eb28e", table: "user", column: "bannerId", unique: true); migrationBuilder.CreateIndex( name: "UQ_a854e557b1b14814750c7c7b0c9", table: "user", column: "token", unique: true); migrationBuilder.CreateIndex( name: "IDX_20e30aa35180e317e133d75316", table: "user_group", column: "createdAt"); migrationBuilder.CreateIndex( name: "IDX_3d6b372788ab01be58853003c9", table: "user_group", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_5cc8c468090e129857e9fecce5", table: "user_group_invitation", column: "userGroupId"); migrationBuilder.CreateIndex( name: "IDX_bfbc6305547539369fe73eb144", table: "user_group_invitation", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_e9793f65f504e5a31fbaedbf2f", table: "user_group_invitation", columns: new[] { "userId", "userGroupId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_1039988afa3bf991185b277fe0", table: "user_group_invite", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_78787741f9010886796f2320a4", table: "user_group_invite", columns: new[] { "userId", "userGroupId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_e10924607d058004304611a436", table: "user_group_invite", column: "userGroupId"); migrationBuilder.CreateIndex( name: "IDX_67dc758bc0566985d1b3d39986", table: "user_group_joining", column: "userGroupId"); migrationBuilder.CreateIndex( name: "IDX_d9ecaed8c6dc43f3592c229282", table: "user_group_joining", columns: new[] { "userId", "userGroupId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_f3a1b4bd0c7cabba958a0c0b23", table: "user_group_joining", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_b7fcefbdd1c18dce86687531f9", table: "user_list", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_605472305f26818cc93d1baaa7", table: "user_list_joining", column: "userListId"); migrationBuilder.CreateIndex( name: "IDX_90f7da835e4c10aca6853621e1", table: "user_list_joining", columns: new[] { "userId", "userListId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_d844bfc6f3f523a05189076efa", table: "user_list_joining", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_410cd649884b501c02d6e72738", table: "user_note_pining", columns: new[] { "userId", "noteId" }, unique: true); migrationBuilder.CreateIndex( name: "IDX_bfbc6f79ba4007b4ce5097f08d", table: "user_note_pining", column: "userId"); migrationBuilder.CreateIndex( name: "IX_user_note_pining_noteId", table: "user_note_pining", column: "noteId"); migrationBuilder.CreateIndex( name: "IDX_4e5c4c99175638ec0761714ab0", table: "user_pending", column: "code", unique: true); migrationBuilder.CreateIndex( name: "IDX_3befe6f999c86aff06eb0257b4", table: "user_profile", column: "enableWordMute"); migrationBuilder.CreateIndex( name: "IDX_dce530b98e454793dac5ec2f5a", table: "user_profile", column: "userHost"); migrationBuilder.CreateIndex( name: "UQ_6dc44f1ceb65b1e72bacef2ca27", table: "user_profile", column: "pinnedPageId", unique: true); migrationBuilder.CreateIndex( name: "IDX_171e64971c780ebd23fae140bb", table: "user_publickey", column: "keyId", unique: true); migrationBuilder.CreateIndex( name: "IDX_0d7718e562dcedd0aa5cf2c9f7", table: "user_security_key", column: "publicKey"); migrationBuilder.CreateIndex( name: "IDX_ff9ca3b5f3ee3d0681367a9b44", table: "user_security_key", column: "userId"); migrationBuilder.CreateIndex( name: "IDX_5a056076f76b2efe08216ba655", table: "webhook", column: "active"); migrationBuilder.CreateIndex( name: "IDX_8063a0586ed1dfbe86e982d961", table: "webhook", column: "on"); migrationBuilder.CreateIndex( name: "IDX_f272c8c8805969e6a6449c77b3", table: "webhook", column: "userId"); migrationBuilder.AddForeignKey( name: "FK_04cc96756f89d0b7f9473e8cdf3", table: "abuse_user_report", column: "reporterId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_08b883dd5fdd6f9c4c1572b36de", table: "abuse_user_report", column: "assigneeId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.SetNull); migrationBuilder.AddForeignKey( name: "FK_a9021cc2e1feb5f72d3db6e9f5f", table: "abuse_user_report", column: "targetUserId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_9949557d0e1b2c19e5344c171e9", table: "access_token", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_a3ff16c90cc87a82a0b5959e560", table: "access_token", column: "appId", principalTable: "app", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_8288151386172b8109f7239ab28", table: "announcement_read", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_6446c571a0e8d0f05f01c789096", table: "antenna", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_709d7d32053d0dd7620f678eeb9", table: "antenna", column: "userListId", principalTable: "user_list", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_ccbf5a8c0be4511133dcc50ddeb", table: "antenna", column: "userGroupJoiningId", principalTable: "user_group_joining", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_3f5b0899ef90527a3462d7c2cb3", table: "app", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.SetNull); migrationBuilder.AddForeignKey( name: "FK_f1a461a618fa1755692d0e0d592", table: "attestation_challenge", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_c072b729d71697f959bde66ade0", table: "auth_session", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_0627125f1a8a42c9a1929edb552", table: "blocking", column: "blockerId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_2cd4a2743a99671308f5417759e", table: "blocking", column: "blockeeId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_823bae55bd81b3be6e05cff4383", table: "channel", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.SetNull); migrationBuilder.AddForeignKey( name: "FK_999da2bcc7efadbfe0e92d3bc19", table: "channel", column: "bannerId", principalTable: "drive_file", principalColumn: "id", onDelete: ReferentialAction.SetNull); migrationBuilder.AddForeignKey( name: "FK_6d8084ec9496e7334a4602707e1", table: "channel_following", column: "followerId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_10b19ef67d297ea9de325cd4502", table: "channel_note_pining", column: "noteId", principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_2b5ec6c574d6802c94c80313fb2", table: "clip", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_a012eaf5c87c65da1deb5fdbfa3", table: "clip_note", column: "noteId", principalTable: "note", principalColumn: "id", onDelete: ReferentialAction.Cascade); migrationBuilder.AddForeignKey( name: "FK_860fa6f6c7df5bb887249fba22e", table: "drive_file", column: "userId", principalTable: "user", principalColumn: "id", onDelete: ReferentialAction.SetNull); migrationBuilder.AddForeignKey( name: "FK_bb90d1956dafc4068c28aa7560a", table: "drive_file", column: "folderId", principalTable: "drive_folder", principalColumn: "id", onDelete: ReferentialAction.SetNull); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( name: "FK_860fa6f6c7df5bb887249fba22e", table: "drive_file"); migrationBuilder.DropForeignKey( name: "FK_f4fc06e49c0171c85f1c48060d2", table: "drive_folder"); migrationBuilder.DropTable( name: "abuse_user_report"); migrationBuilder.DropTable( name: "announcement_read"); migrationBuilder.DropTable( name: "antenna"); migrationBuilder.DropTable( name: "attestation_challenge"); migrationBuilder.DropTable( name: "auth_session"); migrationBuilder.DropTable( name: "blocking"); migrationBuilder.DropTable( name: "channel_following"); migrationBuilder.DropTable( name: "channel_note_pining"); migrationBuilder.DropTable( name: "clip_note"); migrationBuilder.DropTable( name: "emoji"); migrationBuilder.DropTable( name: "following"); migrationBuilder.DropTable( name: "gallery_like"); migrationBuilder.DropTable( name: "hashtag"); migrationBuilder.DropTable( name: "html_note_cache_entry"); migrationBuilder.DropTable( name: "html_user_cache_entry"); migrationBuilder.DropTable( name: "instance"); migrationBuilder.DropTable( name: "messaging_message"); migrationBuilder.DropTable( name: "meta"); migrationBuilder.DropTable( name: "moderation_log"); migrationBuilder.DropTable( name: "muting"); migrationBuilder.DropTable( name: "note_edit"); migrationBuilder.DropTable( name: "note_favorite"); migrationBuilder.DropTable( name: "note_reaction"); migrationBuilder.DropTable( name: "note_thread_muting"); migrationBuilder.DropTable( name: "note_unread"); migrationBuilder.DropTable( name: "note_watching"); migrationBuilder.DropTable( name: "notification"); migrationBuilder.DropTable( name: "oauth_token"); migrationBuilder.DropTable( name: "page_like"); migrationBuilder.DropTable( name: "password_reset_request"); migrationBuilder.DropTable( name: "poll"); migrationBuilder.DropTable( name: "poll_vote"); migrationBuilder.DropTable( name: "promo_note"); migrationBuilder.DropTable( name: "promo_read"); migrationBuilder.DropTable( name: "registration_ticket"); migrationBuilder.DropTable( name: "registry_item"); migrationBuilder.DropTable( name: "relay"); migrationBuilder.DropTable( name: "renote_muting"); migrationBuilder.DropTable( name: "session"); migrationBuilder.DropTable( name: "signin"); migrationBuilder.DropTable( name: "sw_subscription"); migrationBuilder.DropTable( name: "used_username"); migrationBuilder.DropTable( name: "user_group_invite"); migrationBuilder.DropTable( name: "user_keypair"); migrationBuilder.DropTable( name: "user_list_joining"); migrationBuilder.DropTable( name: "user_note_pining"); migrationBuilder.DropTable( name: "user_pending"); migrationBuilder.DropTable( name: "user_profile"); migrationBuilder.DropTable( name: "user_publickey"); migrationBuilder.DropTable( name: "user_security_key"); migrationBuilder.DropTable( name: "webhook"); migrationBuilder.DropTable( name: "announcement"); migrationBuilder.DropTable( name: "user_group_joining"); migrationBuilder.DropTable( name: "clip"); migrationBuilder.DropTable( name: "gallery_post"); migrationBuilder.DropTable( name: "user_group_invitation"); migrationBuilder.DropTable( name: "follow_request"); migrationBuilder.DropTable( name: "access_token"); migrationBuilder.DropTable( name: "oauth_app"); migrationBuilder.DropTable( name: "user_list"); migrationBuilder.DropTable( name: "note"); migrationBuilder.DropTable( name: "page"); migrationBuilder.DropTable( name: "user_group"); migrationBuilder.DropTable( name: "app"); migrationBuilder.DropTable( name: "channel"); migrationBuilder.DropTable( name: "user"); migrationBuilder.DropTable( name: "drive_file"); migrationBuilder.DropTable( name: "drive_folder"); } } }