magnetar/ext_calckey_model/migration/src/bootstrap_up.sql

3169 lines
133 KiB
MySQL
Raw Normal View History

2023-07-29 03:20:00 +00:00
create type log_level_enum as enum ('error', 'warning', 'info', 'success', 'debug');
create type note_visibility_enum as enum ('public', 'home', 'followers', 'specified', 'hidden');
create type poll_notevisibility_enum as enum ('public', 'home', 'followers', 'specified');
create type page_visibility_enum as enum ('public', 'followers', 'specified');
create type antenna_src_enum as enum ('home', 'all', 'users', 'list', 'group', 'instances');
create type relay_status_enum as enum ('requesting', 'accepted', 'rejected');
create type muted_note_reason_enum as enum ('word', 'manual', 'spam', 'other');
create type user_profile_mutingnotificationtypes_enum as enum ('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app');
create type user_profile_ffvisibility_enum as enum ('public', 'followers', 'private');
create type notification_type_enum as enum ('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app');
create type meta_sensitivemediadetection_enum as enum ('none', 'all', 'local', 'remote');
create type meta_sensitivemediadetectionsensitivity_enum as enum ('medium', 'low', 'high', 'veryLow', 'veryHigh');
create table if not exists drive_folder
(
id varchar(32) not null
constraint "PK_7a0c089191f5ebdc214e0af808a"
primary key,
"createdAt" timestamp with time zone not null,
name varchar(128) not null,
"userId" varchar(32),
"parentId" varchar(32)
constraint "FK_00ceffb0cdc238b3233294f08f2"
references drive_folder
on delete set null
);
comment on column drive_folder."createdAt" is 'The created date of the DriveFolder.';
comment on column drive_folder.name is 'The name of the DriveFolder.';
comment on column drive_folder."userId" is 'The owner ID.';
comment on column drive_folder."parentId" is 'The parent folder ID. If null, it means the DriveFolder is located in root.';
create index if not exists "IDX_02878d441ceae15ce060b73daf"
on drive_folder ("createdAt");
create index if not exists "IDX_f4fc06e49c0171c85f1c48060d"
on drive_folder ("userId");
create index if not exists "IDX_00ceffb0cdc238b3233294f08f"
on drive_folder ("parentId");
create table if not exists drive_file
(
id varchar(32) not null
constraint "PK_43ddaaaf18c9e68029b7cbb032e"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32),
"userHost" varchar(128),
md5 varchar(32) not null,
name varchar(256) not null,
type varchar(128) not null,
size integer not null,
comment varchar(8192),
properties jsonb default '{}'::jsonb not null,
"storedInternal" boolean not null,
url varchar(512) not null,
"thumbnailUrl" varchar(512),
"webpublicUrl" varchar(512),
"accessKey" varchar(256),
"thumbnailAccessKey" varchar(256),
"webpublicAccessKey" varchar(256),
uri varchar(512),
src varchar(512),
"folderId" varchar(32)
constraint "FK_bb90d1956dafc4068c28aa7560a"
references drive_folder
on delete set null,
"isSensitive" boolean default false not null,
"isLink" boolean default false not null,
blurhash varchar(128),
"webpublicType" varchar(128),
"requestHeaders" jsonb default '{}'::jsonb,
"requestIp" varchar(128),
"maybeSensitive" boolean default false not null,
"maybePorn" boolean default false not null
);
comment on column drive_file."createdAt" is 'The created date of the DriveFile.';
comment on column drive_file."userId" is 'The owner ID.';
comment on column drive_file."userHost" is 'The host of owner. It will be null if the user in local.';
comment on column drive_file.md5 is 'The MD5 hash of the DriveFile.';
comment on column drive_file.name is 'The file name of the DriveFile.';
comment on column drive_file.type is 'The content type (MIME) of the DriveFile.';
comment on column drive_file.size is 'The file size (bytes) of the DriveFile.';
comment on column drive_file.comment is 'The comment of the DriveFile.';
comment on column drive_file.properties is 'The any properties of the DriveFile. For example, it includes image width/height.';
comment on column drive_file.url is 'The URL of the DriveFile.';
comment on column drive_file."thumbnailUrl" is 'The URL of the thumbnail of the DriveFile.';
comment on column drive_file."webpublicUrl" is 'The URL of the webpublic of the DriveFile.';
comment on column drive_file.uri is 'The URI of the DriveFile. it will be null when the DriveFile is local.';
comment on column drive_file."folderId" is 'The parent folder ID. If null, it means the DriveFile is located in root.';
comment on column drive_file."isSensitive" is 'Whether the DriveFile is NSFW.';
comment on column drive_file."isLink" is 'Whether the DriveFile is direct link to remote server.';
comment on column drive_file.blurhash is 'The BlurHash string.';
comment on column drive_file."maybeSensitive" is 'Whether the DriveFile is NSFW. (predict)';
create index if not exists "IDX_c8dfad3b72196dd1d6b5db168a"
on drive_file ("createdAt");
create index if not exists "IDX_860fa6f6c7df5bb887249fba22"
on drive_file ("userId");
create index if not exists "IDX_92779627994ac79277f070c91e"
on drive_file ("userHost");
create index if not exists "IDX_37bb9a1b4585f8a3beb24c62d6"
on drive_file (md5);
create index if not exists "IDX_a40b8df8c989d7db937ea27cf6"
on drive_file (type);
create unique index if not exists "IDX_d85a184c2540d2deba33daf642"
on drive_file ("accessKey");
create unique index if not exists "IDX_e74022ce9a074b3866f70e0d27"
on drive_file ("thumbnailAccessKey");
create unique index if not exists "IDX_c55b2b7c284d9fef98026fc88e"
on drive_file ("webpublicAccessKey");
create index if not exists "IDX_e5848eac4940934e23dbc17581"
on drive_file (uri);
create index if not exists "IDX_bb90d1956dafc4068c28aa7560"
on drive_file ("folderId");
create index if not exists "IDX_55720b33a61a7c806a8215b825"
on drive_file ("userId", "folderId", id);
create index if not exists "IDX_a7eba67f8b3fa27271e85d2e26"
on drive_file ("isSensitive");
create index if not exists "IDX_315c779174fe8247ab324f036e"
on drive_file ("isLink");
create index if not exists "IDX_3b33dff77bb64b23c88151d23e"
on drive_file ("maybeSensitive");
create index if not exists "IDX_8bdcd3dd2bddb78014999a16ce"
on drive_file ("maybePorn");
create table if not exists "user"
(
id varchar(32) not null
constraint "PK_cace4a159ff9f2512dd42373760"
primary key,
"createdAt" timestamp with time zone not null,
"updatedAt" timestamp with time zone,
"lastFetchedAt" timestamp with time zone,
username varchar(128) not null,
"usernameLower" varchar(128) not null,
name varchar(128),
"followersCount" integer default 0 not null,
"followingCount" integer default 0 not null,
"notesCount" integer default 0 not null,
"avatarId" varchar(32)
constraint "REL_58f5c71eaab331645112cf8cfa"
unique
constraint "FK_58f5c71eaab331645112cf8cfa5"
references drive_file
on delete set null,
"bannerId" varchar(32)
constraint "REL_afc64b53f8db3707ceb34eb28e"
unique
constraint "FK_afc64b53f8db3707ceb34eb28e2"
references drive_file
on delete set null,
tags varchar(128)[] default '{}'::character varying[] not null,
"isSuspended" boolean default false not null,
"isSilenced" boolean default false not null,
"isLocked" boolean default false not null,
"isBot" boolean default false not null,
"isCat" boolean default false not null,
"isAdmin" boolean default false not null,
"isModerator" boolean default false not null,
emojis varchar(128)[] default '{}'::character varying[] not null,
host varchar(128),
inbox varchar(512),
"sharedInbox" varchar(512),
featured varchar(512),
uri varchar(512),
token char(16)
constraint "UQ_a854e557b1b14814750c7c7b0c9"
unique,
"isExplorable" boolean default true not null,
"followersUri" varchar(512),
"lastActiveDate" timestamp with time zone,
"hideOnlineStatus" boolean default false not null,
"isDeleted" boolean default false not null,
"driveCapacityOverrideMb" integer,
"movedToUri" varchar(512),
"alsoKnownAs" text,
"speakAsCat" boolean default true not null
);
comment on column "user"."createdAt" is 'The created date of the User.';
comment on column "user"."updatedAt" is 'The updated date of the User.';
comment on column "user".username is 'The username of the User.';
comment on column "user"."usernameLower" is 'The username (lowercased) of the User.';
comment on column "user".name is 'The name of the User.';
comment on column "user"."followersCount" is 'The count of followers.';
comment on column "user"."followingCount" is 'The count of following.';
comment on column "user"."notesCount" is 'The count of notes.';
comment on column "user"."avatarId" is 'The ID of avatar DriveFile.';
comment on column "user"."bannerId" is 'The ID of banner DriveFile.';
comment on column "user"."isSuspended" is 'Whether the User is suspended.';
comment on column "user"."isSilenced" is 'Whether the User is silenced.';
comment on column "user"."isLocked" is 'Whether the User is locked.';
comment on column "user"."isBot" is 'Whether the User is a bot.';
comment on column "user"."isCat" is 'Whether the User is a cat.';
comment on column "user"."isAdmin" is 'Whether the User is the admin.';
comment on column "user"."isModerator" is 'Whether the User is a moderator.';
comment on column "user".host is 'The host of the User. It will be null if the origin of the user is local.';
comment on column "user".inbox is 'The inbox URL of the User. It will be null if the origin of the user is local.';
comment on column "user"."sharedInbox" is 'The sharedInbox URL of the User. It will be null if the origin of the user is local.';
comment on column "user".featured is 'The featured URL of the User. It will be null if the origin of the user is local.';
comment on column "user".uri is 'The URI of the User. It will be null if the origin of the user is local.';
comment on column "user".token is 'The native access token of the User. It will be null if the origin of the user is local.';
comment on column "user"."isExplorable" is 'Whether the User is explorable.';
comment on column "user"."followersUri" is 'The URI of the user Follower Collection. It will be null if the origin of the user is local.';
comment on column "user"."isDeleted" is 'Whether the User is deleted.';
comment on column "user"."driveCapacityOverrideMb" is 'Overrides user drive capacity limit';
comment on column "user"."movedToUri" is 'The URI of the new account of the User';
comment on column "user"."alsoKnownAs" is 'URIs the user is known as too';
comment on column "user"."speakAsCat" is 'Whether to speak as a cat if isCat.';
alter table drive_folder
add constraint "FK_f4fc06e49c0171c85f1c48060d2"
foreign key ("userId") references "user"
on delete cascade;
alter table drive_file
add constraint "FK_860fa6f6c7df5bb887249fba22e"
foreign key ("userId") references "user"
on delete set null;
create index if not exists "IDX_e11e649824a45d8ed01d597fd9"
on "user" ("createdAt");
create index if not exists "IDX_80ca6e6ef65fb9ef34ea8c90f4"
on "user" ("updatedAt");
create index if not exists "IDX_a27b942a0d6dcff90e3ee9b5e8"
on "user" ("usernameLower");
create index if not exists "IDX_fa99d777623947a5b05f394cae"
on "user" (tags);
create index if not exists "IDX_3252a5df8d5bbd16b281f7799e"
on "user" (host);
create index if not exists "IDX_be623adaa4c566baf5d29ce0c8"
on "user" (uri);
create unique index if not exists "IDX_a854e557b1b14814750c7c7b0c"
on "user" (token);
create unique index if not exists "IDX_5deb01ae162d1d70b80d064c27"
on "user" ("usernameLower", host);
create index if not exists "IDX_d5a1b83c7cab66f167e6888188"
on "user" ("isExplorable");
create index if not exists "IDX_c8cc87bd0f2f4487d17c651fbf"
on "user" ("lastActiveDate");
create table if not exists app
(
id varchar(32) not null
constraint "PK_9478629fc093d229df09e560aea"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32)
constraint "FK_3f5b0899ef90527a3462d7c2cb3"
references "user"
on delete set null,
secret varchar(64) not null,
name varchar(128) not null,
description varchar(512) not null,
permission varchar(64)[] not null,
"callbackUrl" varchar(512)
);
comment on column app."createdAt" is 'The created date of the App.';
comment on column app."userId" is 'The owner ID.';
comment on column app.secret is 'The secret key of the App.';
comment on column app.name is 'The name of the App.';
comment on column app.description is 'The description of the App.';
comment on column app.permission is 'The permission of the App.';
comment on column app."callbackUrl" is 'The callbackUrl of the App.';
create index if not exists "IDX_048a757923ed8b157e9895da53"
on app ("createdAt");
create index if not exists "IDX_3f5b0899ef90527a3462d7c2cb"
on app ("userId");
create index if not exists "IDX_f49922d511d666848f250663c4"
on app (secret);
create table if not exists access_token
(
id varchar(32) not null
constraint "PK_f20f028607b2603deabd8182d12"
primary key,
"createdAt" timestamp with time zone not null,
token varchar(128) not null,
hash varchar(128) not null,
"userId" varchar(32) not null
constraint "FK_9949557d0e1b2c19e5344c171e9"
references "user"
on delete cascade,
"appId" varchar(32)
constraint "FK_a3ff16c90cc87a82a0b5959e560"
references app
on delete cascade,
"lastUsedAt" timestamp with time zone,
session varchar(128),
name varchar(128),
description varchar(512),
"iconUrl" varchar(512),
permission varchar(64)[] default '{}'::character varying[] not null,
fetched boolean default false not null
);
comment on column access_token."createdAt" is 'The created date of the AccessToken.';
create index if not exists "IDX_70ba8f6af34bc924fc9e12adb8"
on access_token (token);
create index if not exists "IDX_64c327441248bae40f7d92f34f"
on access_token (hash);
create index if not exists "IDX_9949557d0e1b2c19e5344c171e"
on access_token ("userId");
create index if not exists "IDX_bf3a053c07d9fb5d87317c56ee"
on access_token (session);
create table if not exists meta
(
id varchar(32) not null
constraint "PK_c4c17a6c2bd7651338b60fc590b"
primary key,
name varchar(128),
description varchar(1024),
"maintainerName" varchar(128),
"maintainerEmail" varchar(128),
"disableRegistration" boolean default false not null,
"disableLocalTimeline" boolean default false not null,
"disableGlobalTimeline" boolean default false not null,
"useStarForReactionFallback" boolean default false not null,
langs varchar(64)[] default '{}'::character varying[] not null,
"hiddenTags" varchar(256)[] default '{}'::character varying[] not null,
"blockedHosts" varchar(256)[] default '{}'::character varying[] not null,
"mascotImageUrl" varchar(512) default '/assets/ai.png'::character varying,
"bannerUrl" varchar(512),
"errorImageUrl" varchar(512) default 'https://xn--931a.moe/aiart/yubitun.png'::character varying,
"iconUrl" varchar(512),
"cacheRemoteFiles" boolean default true not null,
"enableRecaptcha" boolean default false not null,
"recaptchaSiteKey" varchar(64),
"recaptchaSecretKey" varchar(64),
"localDriveCapacityMb" integer default 1024 not null,
"remoteDriveCapacityMb" integer default 32 not null,
"summalyProxy" varchar(128),
"enableEmail" boolean default false not null,
email varchar(128),
"smtpSecure" boolean default false not null,
"smtpHost" varchar(128),
"smtpPort" integer,
"smtpUser" varchar(128),
"smtpPass" varchar(128),
"enableServiceWorker" boolean default false not null,
"swPublicKey" varchar(128),
"swPrivateKey" varchar(128),
"enableTwitterIntegration" boolean default false not null,
"twitterConsumerKey" varchar(128),
"twitterConsumerSecret" varchar(128),
"enableGithubIntegration" boolean default false not null,
"githubClientId" varchar(128),
"githubClientSecret" varchar(128),
"enableDiscordIntegration" boolean default false not null,
"discordClientId" varchar(128),
"discordClientSecret" varchar(128),
"pinnedUsers" varchar(256)[] default '{}'::character varying[] not null,
"ToSUrl" varchar(512),
"repositoryUrl" varchar(512) default 'https://github.com/misskey-dev/misskey'::character varying not null,
"feedbackUrl" varchar(512) default 'https://github.com/misskey-dev/misskey/issues/new'::character varying,
"useObjectStorage" boolean default false not null,
"objectStorageBucket" varchar(512),
"objectStoragePrefix" varchar(512),
"objectStorageBaseUrl" varchar(512),
"objectStorageEndpoint" varchar(512),
"objectStorageRegion" varchar(512),
"objectStorageAccessKey" varchar(512),
"objectStorageSecretKey" varchar(512),
"objectStoragePort" integer,
"objectStorageUseSSL" boolean default true not null,
"proxyAccountId" varchar(32)
constraint "FK_ab1bc0c1e209daa77b8e8d212ad"
references "user"
on delete set null,
"objectStorageUseProxy" boolean default true not null,
"enableHcaptcha" boolean default false not null,
"hcaptchaSiteKey" varchar(64),
"hcaptchaSecretKey" varchar(64),
"objectStorageSetPublicRead" boolean default false not null,
"pinnedPages" varchar(512)[] default '{/featured,/channels,/explore,/pages,/about-misskey}'::character varying[] not null,
"backgroundImageUrl" varchar(512),
"logoImageUrl" varchar(512),
"pinnedClipId" varchar(32),
"objectStorageS3ForcePathStyle" boolean default true not null,
"allowedHosts" varchar(256)[] default '{}'::character varying[],
"secureMode" boolean default false,
"privateMode" boolean default false,
"deeplAuthKey" varchar(128),
"deeplIsPro" boolean default false not null,
"emailRequiredForSignup" boolean default false not null,
"themeColor" varchar(512),
"defaultLightTheme" varchar(8192),
"defaultDarkTheme" varchar(8192),
"sensitiveMediaDetection" meta_sensitivemediadetection_enum default 'none'::meta_sensitivemediadetection_enum not null,
"sensitiveMediaDetectionSensitivity" meta_sensitivemediadetectionsensitivity_enum default 'medium'::meta_sensitivemediadetectionsensitivity_enum not null,
"setSensitiveFlagAutomatically" boolean default false not null,
"enableIpLogging" boolean default false not null,
"enableSensitiveMediaDetectionForVideos" boolean default false not null,
"enableActiveEmailValidation" boolean default true not null,
"customMOTD" varchar(256)[] default '{}'::character varying[] not null,
"customSplashIcons" varchar(256)[] default '{}'::character varying[] not null,
"disableRecommendedTimeline" boolean default true not null,
"recommendedInstances" varchar(256)[] default '{}'::character varying[] not null,
"enableGuestTimeline" boolean default false not null,
"defaultReaction" varchar(256) default ''::character varying not null,
"libreTranslateApiUrl" varchar(512),
"libreTranslateApiKey" varchar(128),
"silencedHosts" varchar(256)[] default '{}'::character varying[] not null,
"experimentalFeatures" jsonb default '{}'::jsonb not null
);
comment on column meta."localDriveCapacityMb" is 'Drive capacity of a local user (MB)';
comment on column meta."remoteDriveCapacityMb" is 'Drive capacity of a remote user (MB)';
comment on column meta."defaultReaction" is 'The fallback reaction for emoji reacts';
create table if not exists following
(
id varchar(32) not null
constraint "PK_c76c6e044bdf76ecf8bfb82a645"
primary key,
"createdAt" timestamp with time zone not null,
"followeeId" varchar(32) not null
constraint "FK_24e0042143a18157b234df186c3"
references "user"
on delete cascade,
"followerId" varchar(32) not null
constraint "FK_6516c5a6f3c015b4eed39978be5"
references "user"
on delete cascade,
"followerHost" varchar(128),
"followerInbox" varchar(512),
"followerSharedInbox" varchar(512),
"followeeHost" varchar(128),
"followeeInbox" varchar(512),
"followeeSharedInbox" varchar(512)
);
comment on column following."createdAt" is 'The created date of the Following.';
comment on column following."followeeId" is 'The followee user ID.';
comment on column following."followerId" is 'The follower user ID.';
comment on column following."followerHost" is '[Denormalized]';
comment on column following."followerInbox" is '[Denormalized]';
comment on column following."followerSharedInbox" is '[Denormalized]';
comment on column following."followeeHost" is '[Denormalized]';
comment on column following."followeeInbox" is '[Denormalized]';
comment on column following."followeeSharedInbox" is '[Denormalized]';
create index if not exists "IDX_582f8fab771a9040a12961f3e7"
on following ("createdAt");
create index if not exists "IDX_24e0042143a18157b234df186c"
on following ("followeeId");
create index if not exists "IDX_6516c5a6f3c015b4eed39978be"
on following ("followerId");
create unique index if not exists "IDX_307be5f1d1252e0388662acb96"
on following ("followerId", "followeeId");
create index if not exists "IDX_4ccd2239268ebbd1b35e318754"
on following ("followerHost");
create index if not exists "IDX_fcdafee716dfe9c3b5fde90f30"
on following ("followeeHost");
create table if not exists instance
(
id varchar(32) not null
constraint "PK_eaf60e4a0c399c9935413e06474"
primary key,
"caughtAt" timestamp with time zone not null,
host varchar(128) not null,
"usersCount" integer default 0 not null,
"notesCount" integer default 0 not null,
"followingCount" integer default 0 not null,
"followersCount" integer default 0 not null,
"latestRequestSentAt" timestamp with time zone,
"latestStatus" integer,
"latestRequestReceivedAt" timestamp with time zone,
"lastCommunicatedAt" timestamp with time zone not null,
"isNotResponding" boolean default false not null,
"softwareName" varchar(64),
"softwareVersion" varchar(64),
"openRegistrations" boolean,
name varchar(256),
description varchar(4096),
"maintainerName" varchar(128),
"maintainerEmail" varchar(256),
"infoUpdatedAt" timestamp with time zone,
"isSuspended" boolean default false not null,
"iconUrl" varchar(256),
"themeColor" varchar(64),
"faviconUrl" varchar(256)
);
comment on column instance."caughtAt" is 'The caught date of the Instance.';
comment on column instance.host is 'The host of the Instance.';
comment on column instance."usersCount" is 'The count of the users of the Instance.';
comment on column instance."notesCount" is 'The count of the notes of the Instance.';
comment on column instance."softwareName" is 'The software of the Instance.';
create index if not exists "IDX_2cd3b2a6b4cf0b910b260afe08"
on instance ("caughtAt");
create unique index if not exists "IDX_8d5afc98982185799b160e10eb"
on instance (host);
create index if not exists "IDX_34500da2e38ac393f7bb6b299c"
on instance ("isSuspended");
create table if not exists muting
(
id varchar(32) not null
constraint "PK_2e92d06c8b5c602eeb27ca9ba48"
primary key,
"createdAt" timestamp with time zone not null,
"muteeId" varchar(32) not null
constraint "FK_ec96b4fed9dae517e0dbbe0675c"
references "user"
on delete cascade,
"muterId" varchar(32) not null
constraint "FK_93060675b4a79a577f31d260c67"
references "user"
on delete cascade,
"expiresAt" timestamp with time zone
);
comment on column muting."createdAt" is 'The created date of the Muting.';
comment on column muting."muteeId" is 'The mutee user ID.';
comment on column muting."muterId" is 'The muter user ID.';
create index if not exists "IDX_f86d57fbca33c7a4e6897490cc"
on muting ("createdAt");
create index if not exists "IDX_ec96b4fed9dae517e0dbbe0675"
on muting ("muteeId");
create index if not exists "IDX_93060675b4a79a577f31d260c6"
on muting ("muterId");
create unique index if not exists "IDX_1eb9d9824a630321a29fd3b290"
on muting ("muterId", "muteeId");
create index if not exists "IDX_c1fd1c3dfb0627aa36c253fd14"
on muting ("expiresAt");
create index if not exists "IDX_renote_muting_createdAt"
on muting ("createdAt");
create index if not exists "IDX_renote_muting_muteeId"
on muting ("muteeId");
create index if not exists "IDX_renote_muting_muterId"
on muting ("muterId");
create table if not exists sw_subscription
(
id varchar(32) not null
constraint "PK_e8f763631530051b95eb6279b91"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_97754ca6f2baff9b4abb7f853dd"
references "user"
on delete cascade,
endpoint varchar(512) not null,
auth varchar(256) not null,
publickey varchar(128) not null,
"sendReadMessage" boolean default false not null
);
create index if not exists "IDX_97754ca6f2baff9b4abb7f853d"
on sw_subscription ("userId");
create table if not exists blocking
(
id varchar(32) not null
constraint "PK_e5d9a541cc1965ee7e048ea09dd"
primary key,
"createdAt" timestamp with time zone not null,
"blockeeId" varchar(32) not null
constraint "FK_2cd4a2743a99671308f5417759e"
references "user"
on delete cascade,
"blockerId" varchar(32) not null
constraint "FK_0627125f1a8a42c9a1929edb552"
references "user"
on delete cascade
);
comment on column blocking."createdAt" is 'The created date of the Blocking.';
comment on column blocking."blockeeId" is 'The blockee user ID.';
comment on column blocking."blockerId" is 'The blocker user ID.';
create index if not exists "IDX_b9a354f7941c1e779f3b33aea6"
on blocking ("createdAt");
create index if not exists "IDX_2cd4a2743a99671308f5417759"
on blocking ("blockeeId");
create index if not exists "IDX_0627125f1a8a42c9a1929edb55"
on blocking ("blockerId");
create unique index if not exists "IDX_98a1bc5cb30dfd159de056549f"
on blocking ("blockerId", "blockeeId");
create table if not exists user_list
(
id varchar(32) not null
constraint "PK_87bab75775fd9b1ff822b656402"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_b7fcefbdd1c18dce86687531f99"
references "user"
on delete cascade,
name varchar(128) not null
);
comment on column user_list."createdAt" is 'The created date of the UserList.';
comment on column user_list."userId" is 'The owner ID.';
comment on column user_list.name is 'The name of the UserList.';
create index if not exists "IDX_b7fcefbdd1c18dce86687531f9"
on user_list ("userId");
create table if not exists user_list_joining
(
id varchar(32) not null
constraint "PK_11abb3768da1c5f8de101c9df45"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_d844bfc6f3f523a05189076efaa"
references "user"
on delete cascade,
"userListId" varchar(32) not null
constraint "FK_605472305f26818cc93d1baaa74"
references user_list
on delete cascade
);
comment on column user_list_joining."createdAt" is 'The created date of the UserListJoining.';
comment on column user_list_joining."userId" is 'The user ID.';
comment on column user_list_joining."userListId" is 'The list ID.';
create index if not exists "IDX_d844bfc6f3f523a05189076efa"
on user_list_joining ("userId");
create index if not exists "IDX_605472305f26818cc93d1baaa7"
on user_list_joining ("userListId");
create unique index if not exists "IDX_90f7da835e4c10aca6853621e1"
on user_list_joining ("userId", "userListId");
create table if not exists hashtag
(
id varchar(32) not null
constraint "PK_cb36eb8af8412bfa978f1165d78"
primary key,
name varchar(128) not null,
"mentionedUserIds" varchar(32)[] not null,
"mentionedUsersCount" integer default 0 not null,
"mentionedLocalUserIds" varchar(32)[] not null,
"mentionedLocalUsersCount" integer default 0 not null,
"mentionedRemoteUserIds" varchar(32)[] not null,
"mentionedRemoteUsersCount" integer default 0 not null,
"attachedUserIds" varchar(32)[] not null,
"attachedUsersCount" integer default 0 not null,
"attachedLocalUserIds" varchar(32)[] not null,
"attachedLocalUsersCount" integer default 0 not null,
"attachedRemoteUserIds" varchar(32)[] not null,
"attachedRemoteUsersCount" integer default 0 not null
);
create unique index if not exists "IDX_347fec870eafea7b26c8a73bac"
on hashtag (name);
create index if not exists "IDX_2710a55f826ee236ea1a62698f"
on hashtag ("mentionedUsersCount");
create index if not exists "IDX_0e206cec573f1edff4a3062923"
on hashtag ("mentionedLocalUsersCount");
create index if not exists "IDX_4c02d38a976c3ae132228c6fce"
on hashtag ("mentionedRemoteUsersCount");
create index if not exists "IDX_d57f9030cd3af7f63ffb1c267c"
on hashtag ("attachedUsersCount");
create index if not exists "IDX_0c44bf4f680964145f2a68a341"
on hashtag ("attachedLocalUsersCount");
create index if not exists "IDX_0b03cbcd7e6a7ce068efa8ecc2"
on hashtag ("attachedRemoteUsersCount");
create table if not exists abuse_user_report
(
id varchar(32) not null
constraint "PK_87873f5f5cc5c321a1306b2d18c"
primary key,
"createdAt" timestamp with time zone not null,
"targetUserId" varchar(32) not null
constraint fk_7f4e851a35d81b64dda28eee0
references "user"
on delete cascade,
"reporterId" varchar(32) not null
constraint "FK_04cc96756f89d0b7f9473e8cdf3"
references "user"
on delete cascade,
"assigneeId" varchar(32)
constraint "FK_08b883dd5fdd6f9c4c1572b36de"
references "user"
on delete set null,
resolved boolean default false not null,
comment varchar(2048) not null,
"targetUserHost" varchar(128),
"reporterHost" varchar(128),
forwarded boolean default false not null
);
comment on column abuse_user_report."createdAt" is 'The created date of the AbuseUserReport.';
comment on column abuse_user_report."targetUserHost" is '[Denormalized]';
comment on column abuse_user_report."reporterHost" is '[Denormalized]';
create index if not exists "IDX_db2098070b2b5a523c58181f74"
on abuse_user_report ("createdAt");
create index if not exists "IDX_04cc96756f89d0b7f9473e8cdf"
on abuse_user_report ("reporterId");
create index if not exists "IDX_2b15aaf4a0dc5be3499af7ab6a"
on abuse_user_report (resolved);
create index if not exists "IDX_4ebbf7f93cdc10e8d1ef2fc6cd"
on abuse_user_report ("targetUserHost");
create index if not exists "IDX_f8d8b93740ad12c4ce8213a199"
on abuse_user_report ("reporterHost");
create table if not exists registration_ticket
(
id varchar(32) not null
constraint "PK_f11696b6fafcf3662d4292734f8"
primary key,
"createdAt" timestamp with time zone not null,
code varchar(64) not null
);
create unique index if not exists "IDX_0ff69e8dfa9fe31bb4a4660f59"
on registration_ticket (code);
create table if not exists signin
(
id varchar(32) not null
constraint "PK_9e96ddc025712616fc492b3b588"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_2c308dbdc50d94dc625670055f7"
references "user"
on delete cascade,
ip varchar(128) not null,
headers jsonb not null,
success boolean not null
);
comment on column signin."createdAt" is 'The created date of the Signin.';
create index if not exists "IDX_2c308dbdc50d94dc625670055f"
on signin ("userId");
create table if not exists auth_session
(
id varchar(32) not null
constraint "PK_19354ed146424a728c1112a8cbf"
primary key,
"createdAt" timestamp with time zone not null,
token varchar(128) not null,
"userId" varchar(32)
constraint "FK_c072b729d71697f959bde66ade0"
references "user"
on delete cascade,
"appId" varchar(32) not null
constraint "FK_dbe037d4bddd17b03a1dc778dee"
references app
on delete cascade
);
comment on column auth_session."createdAt" is 'The created date of the AuthSession.';
create index if not exists "IDX_62cb09e1129f6ec024ef66e183"
on auth_session (token);
create table if not exists follow_request
(
id varchar(32) not null
constraint "PK_53a9aa3725f7a3deb150b39dbfc"
primary key,
"createdAt" timestamp with time zone not null,
"followeeId" varchar(32) not null
constraint "FK_12c01c0d1a79f77d9f6c15fadd2"
references "user"
on delete cascade,
"followerId" varchar(32) not null
constraint "FK_a7fd92dd6dc519e6fb435dd108f"
references "user"
on delete cascade,
"requestId" varchar(128),
"followerHost" varchar(128),
"followerInbox" varchar(512),
"followerSharedInbox" varchar(512),
"followeeHost" varchar(128),
"followeeInbox" varchar(512),
"followeeSharedInbox" varchar(512)
);
comment on column follow_request."createdAt" is 'The created date of the FollowRequest.';
comment on column follow_request."followeeId" is 'The followee user ID.';
comment on column follow_request."followerId" is 'The follower user ID.';
comment on column follow_request."requestId" is 'id of Follow Activity.';
comment on column follow_request."followerHost" is '[Denormalized]';
comment on column follow_request."followerInbox" is '[Denormalized]';
comment on column follow_request."followerSharedInbox" is '[Denormalized]';
comment on column follow_request."followeeHost" is '[Denormalized]';
comment on column follow_request."followeeInbox" is '[Denormalized]';
comment on column follow_request."followeeSharedInbox" is '[Denormalized]';
create index if not exists "IDX_12c01c0d1a79f77d9f6c15fadd"
on follow_request ("followeeId");
create index if not exists "IDX_a7fd92dd6dc519e6fb435dd108"
on follow_request ("followerId");
create unique index if not exists "IDX_d54a512b822fac7ed52800f6b4"
on follow_request ("followerId", "followeeId");
create table if not exists emoji
(
id varchar(32) not null
constraint "PK_df74ce05e24999ee01ea0bc50a3"
primary key,
"updatedAt" timestamp with time zone,
name varchar(128) not null,
host varchar(128),
"originalUrl" varchar(512) not null,
uri varchar(512),
type varchar(64),
aliases varchar(128)[] default '{}'::character varying[] not null,
category varchar(128),
"publicUrl" varchar(512) default ''::character varying not null,
license varchar(1024),
width integer,
height integer
);
comment on column emoji.width is 'Image width';
comment on column emoji.height is 'Image height';
create index if not exists "IDX_b37dafc86e9af007e3295c2781"
on emoji (name);
create index if not exists "IDX_5900e907bb46516ddf2871327c"
on emoji (host);
create unique index if not exists "IDX_4f4d35e1256c84ae3d1f0eab10"
on emoji (name, host);
create table if not exists user_keypair
(
"userId" varchar(32) not null
constraint "PK_f4853eb41ab722fe05f81cedeb6"
primary key
constraint "UQ_f4853eb41ab722fe05f81cedeb6"
unique
constraint "FK_f4853eb41ab722fe05f81cedeb6"
references "user"
on delete cascade,
"publicKey" varchar(4096) not null,
"privateKey" varchar(4096) not null
);
create table if not exists user_publickey
(
"userId" varchar(32) not null
constraint "PK_10c146e4b39b443ede016f6736d"
primary key
constraint "UQ_10c146e4b39b443ede016f6736d"
unique
constraint "FK_10c146e4b39b443ede016f6736d"
references "user"
on delete cascade,
"keyId" varchar(256) not null,
"keyPem" varchar(4096) not null
);
create unique index if not exists "IDX_171e64971c780ebd23fae140bb"
on user_publickey ("keyId");
create table if not exists __chart__active_users
(
id serial
constraint "PK_317237a9f733b970604a11e314f"
primary key,
date integer not null
constraint "UQ_0ad37b7ef50f4ddc84363d7ccca"
unique,
"unique_temp___registeredWithinWeek" character varying[] default '{}'::character varying[] not null,
"___registeredWithinWeek" smallint default '0'::smallint not null,
"unique_temp___registeredWithinMonth" character varying[] default '{}'::character varying[] not null,
"___registeredWithinMonth" smallint default '0'::smallint not null,
"unique_temp___registeredWithinYear" character varying[] default '{}'::character varying[] not null,
"___registeredWithinYear" smallint default '0'::smallint not null,
"unique_temp___registeredOutsideWeek" character varying[] default '{}'::character varying[] not null,
"___registeredOutsideWeek" smallint default '0'::smallint not null,
"unique_temp___registeredOutsideMonth" character varying[] default '{}'::character varying[] not null,
"___registeredOutsideMonth" smallint default '0'::smallint not null,
"unique_temp___registeredOutsideYear" character varying[] default '{}'::character varying[] not null,
"___registeredOutsideYear" smallint default '0'::smallint not null,
"___readWrite" smallint default '0'::smallint not null,
unique_temp___read character varying[] default '{}'::character varying[] not null,
___read smallint default '0'::smallint not null,
unique_temp___write character varying[] default '{}'::character varying[] not null,
___write smallint default '0'::smallint not null
);
create unique index if not exists "IDX_0ad37b7ef50f4ddc84363d7ccc"
on __chart__active_users (date);
create table if not exists __chart__drive
(
id serial
constraint "PK_f96bc548a765cd4b3b354221ce7"
primary key,
date integer not null
constraint "UQ_13565815f618a1ff53886c5b28a"
unique,
"___local_incCount" integer default '0'::bigint not null,
"___local_incSize" integer default '0'::bigint not null,
"___local_decCount" integer default '0'::bigint not null,
"___local_decSize" integer default '0'::bigint not null,
"___remote_incCount" integer default '0'::bigint not null,
"___remote_incSize" integer default '0'::bigint not null,
"___remote_decCount" integer default '0'::bigint not null,
"___remote_decSize" integer default '0'::bigint not null
);
create unique index if not exists "IDX_13565815f618a1ff53886c5b28"
on __chart__drive (date);
create table if not exists __chart__federation
(
id serial
constraint "PK_b39dcd31a0fe1a7757e348e85fd"
primary key,
date integer not null
constraint "UQ_36cb699c49580d4e6c2e6159f97"
unique,
"unique_temp___deliveredInstances" character varying[] default '{}'::character varying[] not null,
"___deliveredInstances" smallint default '0'::smallint not null,
"unique_temp___inboxInstances" character varying[] default '{}'::character varying[] not null,
"___inboxInstances" smallint default '0'::smallint not null,
unique_temp___stalled character varying[] default '{}'::character varying[] not null,
___stalled smallint default '0'::smallint not null,
___sub smallint default '0'::smallint not null,
___pub smallint default '0'::smallint not null,
___pubsub smallint default '0'::smallint not null,
"___subActive" smallint default '0'::smallint not null,
"___pubActive" smallint default '0'::smallint not null
);
create unique index if not exists "IDX_36cb699c49580d4e6c2e6159f9"
on __chart__federation (date);
create table if not exists __chart__hashtag
(
id serial
constraint "PK_c32f1ea2b44a5d2f7881e37f8f9"
primary key,
date integer not null,
"group" varchar(128) not null,
___local_users integer default 0 not null,
___remote_users integer default 0 not null,
unique_temp___local_users character varying[] default '{}'::character varying[] not null,
unique_temp___remote_users character varying[] default '{}'::character varying[] not null,
constraint "UQ_25a97c02003338124b2b75fdbc8"
unique (date, "group")
);
create unique index if not exists "IDX_25a97c02003338124b2b75fdbc"
on __chart__hashtag (date, "group");
create table if not exists __chart__instance
(
id serial
constraint "PK_1267c67c7c2d47b4903975f2c00"
primary key,
date integer not null,
"group" varchar(128) not null,
___requests_failed smallint default '0'::bigint not null,
___requests_succeeded smallint default '0'::bigint not null,
___requests_received smallint default '0'::bigint not null,
___notes_total integer default '0'::bigint not null,
___notes_inc integer default '0'::bigint not null,
___notes_dec integer default '0'::bigint not null,
___notes_diffs_normal integer default '0'::bigint not null,
___notes_diffs_reply integer default '0'::bigint not null,
___notes_diffs_renote integer default '0'::bigint not null,
___users_total integer default '0'::bigint not null,
___users_inc smallint default '0'::bigint not null,
___users_dec smallint default '0'::bigint not null,
___following_total integer default '0'::bigint not null,
___following_inc smallint default '0'::bigint not null,
___following_dec smallint default '0'::bigint not null,
___followers_total integer default '0'::bigint not null,
___followers_inc smallint default '0'::bigint not null,
___followers_dec smallint default '0'::bigint not null,
"___drive_totalFiles" integer default '0'::bigint not null,
"___drive_incFiles" integer default '0'::bigint not null,
"___drive_incUsage" integer default '0'::bigint not null,
"___drive_decFiles" integer default '0'::bigint not null,
"___drive_decUsage" integer default '0'::bigint not null,
"___notes_diffs_withFile" integer default 0 not null,
constraint "UQ_39ee857ab2f23493037c6b66311"
unique (date, "group")
);
create unique index if not exists "IDX_39ee857ab2f23493037c6b6631"
on __chart__instance (date, "group");
create table if not exists __chart__network
(
id serial
constraint "PK_bc4290c2e27fad14ef0c1ca93f3"
primary key,
date integer not null
constraint "UQ_a1efd3e0048a5f2793a47360dc6"
unique,
"___incomingRequests" integer default '0'::bigint not null,
"___outgoingRequests" integer default '0'::bigint not null,
"___totalTime" integer default '0'::bigint not null,
"___incomingBytes" integer default '0'::bigint not null,
"___outgoingBytes" integer default '0'::bigint not null
);
create unique index if not exists "IDX_a1efd3e0048a5f2793a47360dc"
on __chart__network (date);
create table if not exists __chart__notes
(
id serial
constraint "PK_0aec823fa85c7f901bdb3863b14"
primary key,
date integer not null
constraint "UQ_42eb716a37d381cdf566192b2be"
unique,
___local_total integer default '0'::bigint not null,
___local_inc integer default '0'::bigint not null,
___local_dec integer default '0'::bigint not null,
___local_diffs_normal integer default '0'::bigint not null,
___local_diffs_reply integer default '0'::bigint not null,
___local_diffs_renote integer default '0'::bigint not null,
___remote_total integer default '0'::bigint not null,
___remote_inc integer default '0'::bigint not null,
___remote_dec integer default '0'::bigint not null,
___remote_diffs_normal integer default '0'::bigint not null,
___remote_diffs_reply integer default '0'::bigint not null,
___remote_diffs_renote integer default '0'::bigint not null,
"___local_diffs_withFile" integer default 0 not null,
"___remote_diffs_withFile" integer default 0 not null
);
create unique index if not exists "IDX_42eb716a37d381cdf566192b2b"
on __chart__notes (date);
create table if not exists __chart__per_user_drive
(
id serial
constraint "PK_d0ef23d24d666e1a44a0cd3d208"
primary key,
date integer not null,
"group" varchar(128) not null,
"___totalCount" integer default '0'::bigint not null,
"___totalSize" integer default '0'::bigint not null,
"___incCount" smallint default '0'::bigint not null,
"___incSize" integer default '0'::bigint not null,
"___decCount" smallint default '0'::bigint not null,
"___decSize" integer default '0'::bigint not null,
constraint "UQ_30bf67687f483ace115c5ca6429"
unique (date, "group")
);
create unique index if not exists "IDX_30bf67687f483ace115c5ca642"
on __chart__per_user_drive (date, "group");
create table if not exists __chart__per_user_following
(
id serial
constraint "PK_85bb1b540363a29c2fec83bd907"
primary key,
date integer not null,
"group" varchar(128) not null,
___local_followings_total integer default '0'::bigint not null,
___local_followings_inc smallint default '0'::bigint not null,
___local_followings_dec smallint default '0'::bigint not null,
___local_followers_total integer default '0'::bigint not null,
___local_followers_inc smallint default '0'::bigint not null,
___local_followers_dec smallint default '0'::bigint not null,
___remote_followings_total integer default '0'::bigint not null,
___remote_followings_inc smallint default '0'::bigint not null,
___remote_followings_dec smallint default '0'::bigint not null,
___remote_followers_total integer default '0'::bigint not null,
___remote_followers_inc smallint default '0'::bigint not null,
___remote_followers_dec smallint default '0'::bigint not null,
constraint "UQ_b77d4dd9562c3a899d9a286fcd7"
unique (date, "group")
);
create unique index if not exists "IDX_b77d4dd9562c3a899d9a286fcd"
on __chart__per_user_following (date, "group");
create table if not exists __chart__per_user_notes
(
id serial
constraint "PK_334acf6e915af2f29edc11b8e50"
primary key,
date integer not null,
"group" varchar(128) not null,
___total integer default '0'::bigint not null,
___inc smallint default '0'::bigint not null,
___dec smallint default '0'::bigint not null,
___diffs_normal smallint default '0'::bigint not null,
___diffs_reply smallint default '0'::bigint not null,
___diffs_renote smallint default '0'::bigint not null,
"___diffs_withFile" smallint default '0'::smallint not null,
constraint "UQ_5048e9daccbbbc6d567bb142d34"
unique (date, "group")
);
create unique index if not exists "IDX_5048e9daccbbbc6d567bb142d3"
on __chart__per_user_notes (date, "group");
create table if not exists __chart__per_user_reaction
(
id serial
constraint "PK_984f54dae441e65b633e8d27a7f"
primary key,
date integer not null,
"group" varchar(128) not null,
___local_count smallint default '0'::bigint not null,
___remote_count smallint default '0'::bigint not null,
constraint "UQ_229a41ad465f9205f1f57032910"
unique (date, "group")
);
create unique index if not exists "IDX_229a41ad465f9205f1f5703291"
on __chart__per_user_reaction (date, "group");
create table if not exists __chart__test_grouped
(
id serial
constraint "PK_f4a2b175d308695af30d4293272"
primary key,
date integer not null,
"group" varchar(128),
___foo_total bigint not null,
___foo_inc bigint not null,
___foo_dec bigint not null
);
create unique index if not exists "IDX_b14489029e4b3aaf4bba5fb524"
on __chart__test_grouped (date, "group");
create unique index if not exists "IDX_da522b4008a9f5d7743b87ad55"
on __chart__test_grouped (date)
where ("group" IS NULL);
create table if not exists __chart__test_unique
(
id serial
constraint "PK_409bac9c97cc612d8500012319d"
primary key,
date integer not null,
"group" varchar(128),
___foo character varying[] default '{}'::character varying[] not null
);
create unique index if not exists "IDX_a0cd75442dd10d0643a17c4a49"
on __chart__test_unique (date, "group");
create unique index if not exists "IDX_16effb2e888f6763673b579f80"
on __chart__test_unique (date)
where ("group" IS NULL);
create table if not exists __chart__test
(
id serial
constraint "PK_b4bc31dffbd1b785276a3ecfc1e"
primary key,
date integer not null,
"group" varchar(128),
___foo_total bigint not null,
___foo_inc bigint not null,
___foo_dec bigint not null
);
create unique index if not exists "IDX_a319e5dbf47e8a17497623beae"
on __chart__test (date, "group");
create unique index if not exists "IDX_dab383a36f3c9db4a0c9b02cf3"
on __chart__test (date)
where ("group" IS NULL);
create table if not exists __chart__users
(
id serial
constraint "PK_4dfcf2c78d03524b9eb2c99d328"
primary key,
date integer not null
constraint "UQ_845254b3eaf708ae8a6cac30265"
unique,
___local_total integer default '0'::bigint not null,
___local_inc smallint default '0'::bigint not null,
___local_dec smallint default '0'::bigint not null,
___remote_total integer default '0'::bigint not null,
___remote_inc smallint default '0'::bigint not null,
___remote_dec smallint default '0'::bigint not null
);
create unique index if not exists "IDX_845254b3eaf708ae8a6cac3026"
on __chart__users (date);
create table if not exists page
(
id varchar(32) not null
constraint "PK_742f4117e065c5b6ad21b37ba1f"
primary key,
"createdAt" timestamp with time zone not null,
"updatedAt" timestamp with time zone not null,
title varchar(256) not null,
name varchar(256) not null,
summary varchar(256),
"alignCenter" boolean not null,
font varchar(32) not null,
"userId" varchar(32) not null
constraint "FK_ae1d917992dd0c9d9bbdad06c4a"
references "user"
on delete cascade,
"eyeCatchingImageId" varchar(32)
constraint "FK_a9ca79ad939bf06066b81c9d3aa"
references drive_file
on delete cascade,
content jsonb default '[]'::jsonb not null,
variables jsonb default '[]'::jsonb not null,
visibility page_visibility_enum not null,
"visibleUserIds" varchar(32)[] default '{}'::character varying[] not null,
"likedCount" integer default 0 not null,
"hideTitleWhenPinned" boolean default false not null,
script varchar(16384) default ''::character varying not null,
"isPublic" boolean default true not null
);
comment on column page."createdAt" is 'The created date of the Page.';
comment on column page."updatedAt" is 'The updated date of the Page.';
comment on column page."userId" is 'The ID of author.';
create table if not exists user_profile
(
"userId" varchar(32) not null
constraint "PK_51cb79b5555effaf7d69ba1cff9"
primary key
constraint "UQ_51cb79b5555effaf7d69ba1cff9"
unique
constraint "FK_51cb79b5555effaf7d69ba1cff9"
references "user"
on delete cascade,
location varchar(128),
birthday char(10),
description varchar(2048),
fields jsonb default '[]'::jsonb not null,
url varchar(512),
email varchar(128),
"emailVerifyCode" varchar(128),
"emailVerified" boolean default false not null,
"twoFactorTempSecret" varchar(128),
"twoFactorSecret" varchar(128),
"twoFactorEnabled" boolean default false not null,
password varchar(128),
"clientData" jsonb default '{}'::jsonb not null,
"autoAcceptFollowed" boolean default false not null,
"alwaysMarkNsfw" boolean default false not null,
"carefulBot" boolean default false not null,
"userHost" varchar(128),
"securityKeysAvailable" boolean default false not null,
"usePasswordLessLogin" boolean default false not null,
"pinnedPageId" varchar(32)
constraint "UQ_6dc44f1ceb65b1e72bacef2ca27"
unique
constraint "FK_6dc44f1ceb65b1e72bacef2ca27"
references page
on delete set null,
room jsonb default '{}'::jsonb not null,
integrations jsonb default '{}'::jsonb not null,
"injectFeaturedNote" boolean default true not null,
"enableWordMute" boolean default false not null,
"mutedWords" jsonb default '[]'::jsonb not null,
"mutingNotificationTypes" user_profile_mutingnotificationtypes_enum[] default '{}'::user_profile_mutingnotificationtypes_enum[] not null,
"noCrawle" boolean default false not null,
"receiveAnnouncementEmail" boolean default true not null,
"emailNotificationTypes" jsonb default '["follow", "receiveFollowRequest", "groupInvited"]'::jsonb not null,
lang varchar(32),
"mutedInstances" jsonb default '[]'::jsonb not null,
"publicReactions" boolean default false not null,
"ffVisibility" user_profile_ffvisibility_enum default 'public'::user_profile_ffvisibility_enum not null,
"autoSensitive" boolean default false not null,
"moderationNote" varchar(8192) default ''::character varying not null,
"preventAiLearning" boolean default true not null
);
comment on column user_profile.location is 'The location of the User.';
comment on column user_profile.birthday is 'The birthday (YYYY-MM-DD) of the User.';
comment on column user_profile.description is 'The description (bio) of the User.';
comment on column user_profile.url is 'Remote URL of the user.';
comment on column user_profile.email is 'The email address of the User.';
comment on column user_profile.password is 'The password hash of the User. It will be null if the origin of the user is local.';
comment on column user_profile."clientData" is 'The client-specific data of the User.';
comment on column user_profile."userHost" is '[Denormalized]';
comment on column user_profile.room is 'The room data of the User.';
comment on column user_profile."noCrawle" is 'Whether reject index by crawler.';
comment on column user_profile."mutedInstances" is 'List of instances muted by the user.';
create index if not exists "IDX_dce530b98e454793dac5ec2f5a"
on user_profile ("userHost");
create index if not exists "IDX_3befe6f999c86aff06eb0257b4"
on user_profile ("enableWordMute");
create index if not exists "IDX_fbb4297c927a9b85e9cefa2eb1"
on page ("createdAt");
create index if not exists "IDX_af639b066dfbca78b01a920f8a"
on page ("updatedAt");
create index if not exists "IDX_b82c19c08afb292de4600d99e4"
on page (name);
create index if not exists "IDX_ae1d917992dd0c9d9bbdad06c4"
on page ("userId");
create index if not exists "IDX_90148bbc2bf0854428786bfc15"
on page ("visibleUserIds");
create unique index if not exists "IDX_2133ef8317e4bdb839c0dcbf13"
on page ("userId", name);
create table if not exists page_like
(
id varchar(32) not null
constraint "PK_813f034843af992d3ae0f43c64c"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_0e61efab7f88dbb79c9166dbb48"
references "user"
on delete cascade,
"pageId" varchar(32) not null
constraint "FK_cf8782626dced3176038176a847"
references page
on delete cascade
);
create index if not exists "IDX_0e61efab7f88dbb79c9166dbb4"
on page_like ("userId");
create unique index if not exists "IDX_4ce6fb9c70529b4c8ac46c9bfa"
on page_like ("userId", "pageId");
create table if not exists user_group
(
id varchar(32) not null
constraint "PK_3c29fba6fe013ec8724378ce7c9"
primary key,
"createdAt" timestamp with time zone not null,
name varchar(256) not null,
"userId" varchar(32) not null
constraint "FK_3d6b372788ab01be58853003c93"
references "user"
on delete cascade,
"isPrivate" boolean default false not null
);
comment on column user_group."createdAt" is 'The created date of the UserGroup.';
comment on column user_group."userId" is 'The ID of owner.';
create table if not exists messaging_message
(
id varchar(32) not null
constraint "PK_db398fd79dc95d0eb8c30456eaa"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_5377c307783fce2b6d352e1203b"
references "user"
on delete cascade,
"recipientId" varchar(32)
constraint "FK_cac14a4e3944454a5ce7daa5142"
references "user"
on delete cascade,
text varchar(4096),
"isRead" boolean default false not null,
"fileId" varchar(32)
constraint "FK_535def119223ac05ad3fa9ef64b"
references drive_file
on delete cascade,
"groupId" varchar(32)
constraint "FK_2c4be03b446884f9e9c502135be"
references user_group
on delete cascade,
reads varchar(32)[] default '{}'::character varying[] not null,
uri varchar(512)
);
comment on column messaging_message."createdAt" is 'The created date of the MessagingMessage.';
comment on column messaging_message."userId" is 'The sender user ID.';
comment on column messaging_message."recipientId" is 'The recipient user ID.';
comment on column messaging_message."groupId" is 'The recipient group ID.';
create index if not exists "IDX_e21cd3646e52ef9c94aaf17c2e"
on messaging_message ("createdAt");
create index if not exists "IDX_5377c307783fce2b6d352e1203"
on messaging_message ("userId");
create index if not exists "IDX_cac14a4e3944454a5ce7daa514"
on messaging_message ("recipientId");
create index if not exists "IDX_2c4be03b446884f9e9c502135b"
on messaging_message ("groupId");
create index if not exists "IDX_20e30aa35180e317e133d75316"
on user_group ("createdAt");
create index if not exists "IDX_3d6b372788ab01be58853003c9"
on user_group ("userId");
create table if not exists user_group_joining
(
id varchar(32) not null
constraint "PK_15f2425885253c5507e1599cfe7"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_f3a1b4bd0c7cabba958a0c0b231"
references "user"
on delete cascade,
"userGroupId" varchar(32) not null
constraint "FK_67dc758bc0566985d1b3d399865"
references user_group
on delete cascade
);
comment on column user_group_joining."createdAt" is 'The created date of the UserGroupJoining.';
comment on column user_group_joining."userId" is 'The user ID.';
comment on column user_group_joining."userGroupId" is 'The group ID.';
create index if not exists "IDX_f3a1b4bd0c7cabba958a0c0b23"
on user_group_joining ("userId");
create index if not exists "IDX_67dc758bc0566985d1b3d39986"
on user_group_joining ("userGroupId");
create unique index if not exists "IDX_d9ecaed8c6dc43f3592c229282"
on user_group_joining ("userId", "userGroupId");
create table if not exists user_group_invite
(
id varchar(32) not null
constraint "PK_3893884af0d3a5f4d01e7921a97"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_1039988afa3bf991185b277fe03"
references "user"
on delete cascade,
"userGroupId" varchar(32) not null
constraint "FK_e10924607d058004304611a436a"
references user_group
on delete cascade
);
create index if not exists "IDX_1039988afa3bf991185b277fe0"
on user_group_invite ("userId");
create index if not exists "IDX_e10924607d058004304611a436"
on user_group_invite ("userGroupId");
create unique index if not exists "IDX_78787741f9010886796f2320a4"
on user_group_invite ("userId", "userGroupId");
create table if not exists attestation_challenge
(
id varchar(32) not null,
"userId" varchar(32) not null
constraint "FK_f1a461a618fa1755692d0e0d592"
references "user"
on delete cascade,
challenge varchar(64) not null,
"createdAt" timestamp with time zone not null,
"registrationChallenge" boolean default false not null,
constraint "PK_d0ba6786e093f1bcb497572a6b5"
primary key (id, "userId")
);
comment on column attestation_challenge.challenge is 'Hex-encoded sha256 hash of the challenge.';
comment on column attestation_challenge."createdAt" is 'The date challenge was created for expiry purposes.';
comment on column attestation_challenge."registrationChallenge" is 'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.';
create index if not exists "IDX_f1a461a618fa1755692d0e0d59"
on attestation_challenge ("userId");
create index if not exists "IDX_47efb914aed1f72dd39a306c7b"
on attestation_challenge (challenge);
create table if not exists user_security_key
(
id varchar not null
constraint "PK_3e508571121ab39c5f85d10c166"
primary key,
"userId" varchar(32) not null
constraint "FK_ff9ca3b5f3ee3d0681367a9b447"
references "user"
on delete cascade,
"publicKey" varchar not null,
"lastUsed" timestamp with time zone not null,
name varchar(30) not null
);
comment on column user_security_key.id is 'Variable-length id given to navigator.credentials.get()';
comment on column user_security_key."publicKey" is 'Variable-length public key used to verify attestations (hex-encoded).';
comment on column user_security_key."lastUsed" is 'The date of the last time the UserSecurityKey was successfully validated.';
comment on column user_security_key.name is 'User-defined name for this key';
create index if not exists "IDX_ff9ca3b5f3ee3d0681367a9b44"
on user_security_key ("userId");
create index if not exists "IDX_0d7718e562dcedd0aa5cf2c9f7"
on user_security_key ("publicKey");
create table if not exists moderation_log
(
id varchar(32) not null
constraint "PK_d0adca6ecfd068db83e4526cc26"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_a08ad074601d204e0f69da9a954"
references "user"
on delete cascade,
type varchar(128) not null,
info jsonb not null
);
comment on column moderation_log."createdAt" is 'The created date of the ModerationLog.';
create index if not exists "IDX_a08ad074601d204e0f69da9a95"
on moderation_log ("userId");
create table if not exists used_username
(
username varchar(128) not null
constraint "PK_78fd79d2d24c6ac2f4cc9a31a5d"
primary key,
"createdAt" timestamp with time zone not null
);
create table if not exists announcement
(
id varchar(32) not null
constraint "PK_e0ef0550174fd1099a308fd18a0"
primary key,
"createdAt" timestamp with time zone not null,
text varchar(8192) not null,
title varchar(256) not null,
"imageUrl" varchar(1024),
"updatedAt" timestamp with time zone
);
comment on column announcement."createdAt" is 'The created date of the Announcement.';
comment on column announcement."updatedAt" is 'The updated date of the Announcement.';
create index if not exists "IDX_118ec703e596086fc4515acb39"
on announcement ("createdAt");
create table if not exists announcement_read
(
id varchar(32) not null
constraint "PK_4b90ad1f42681d97b2683890c5e"
primary key,
"userId" varchar(32) not null
constraint "FK_8288151386172b8109f7239ab28"
references "user"
on delete cascade,
"announcementId" varchar(32) not null
constraint "FK_603a7b1e7aa0533c6c88e9bfafe"
references announcement
on delete cascade,
"createdAt" timestamp with time zone not null
);
comment on column announcement_read."createdAt" is 'The created date of the AnnouncementRead.';
create index if not exists "IDX_8288151386172b8109f7239ab2"
on announcement_read ("userId");
create index if not exists "IDX_603a7b1e7aa0533c6c88e9bfaf"
on announcement_read ("announcementId");
create unique index if not exists "IDX_924fa71815cfa3941d003702a0"
on announcement_read ("userId", "announcementId");
create table if not exists clip
(
id varchar(32) not null
constraint "PK_f0685dac8d4dd056d7255670b75"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_2b5ec6c574d6802c94c80313fb2"
references "user"
on delete cascade,
name varchar(128) not null,
"isPublic" boolean default false not null,
description varchar(2048)
);
comment on column clip."createdAt" is 'The created date of the Clip.';
comment on column clip."userId" is 'The owner ID.';
comment on column clip.name is 'The name of the Clip.';
comment on column clip.description is 'The description of the Clip.';
create index if not exists "IDX_2b5ec6c574d6802c94c80313fb"
on clip ("userId");
create table if not exists antenna
(
id varchar(32) not null
constraint "PK_c170b99775e1dccca947c9f2d5f"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_6446c571a0e8d0f05f01c789096"
references "user"
on delete cascade,
name varchar(128) not null,
src antenna_src_enum not null,
"userListId" varchar(32)
constraint "FK_709d7d32053d0dd7620f678eeb9"
references user_list
on delete cascade,
keywords jsonb default '[]'::jsonb not null,
"withFile" boolean not null,
expression varchar(2048),
notify boolean not null,
"caseSensitive" boolean default false not null,
"withReplies" boolean default false not null,
"userGroupJoiningId" varchar(32)
constraint "FK_ccbf5a8c0be4511133dcc50ddeb"
references user_group_joining
on delete cascade,
users varchar(1024)[] default '{}'::character varying[] not null,
"excludeKeywords" jsonb default '[]'::jsonb not null,
instances jsonb default '[]'::jsonb not null
);
comment on column antenna."createdAt" is 'The created date of the Antenna.';
comment on column antenna."userId" is 'The owner ID.';
comment on column antenna.name is 'The name of the Antenna.';
create index if not exists "IDX_6446c571a0e8d0f05f01c78909"
on antenna ("userId");
create table if not exists user_group_invitation
(
id varchar(32) not null
constraint "PK_160c63ec02bf23f6a5c5e8140d6"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_bfbc6305547539369fe73eb144a"
references "user"
on delete cascade,
"userGroupId" varchar(32) not null
constraint "FK_5cc8c468090e129857e9fecce5a"
references user_group
on delete cascade
);
comment on column user_group_invitation."createdAt" is 'The created date of the UserGroupInvitation.';
comment on column user_group_invitation."userId" is 'The user ID.';
comment on column user_group_invitation."userGroupId" is 'The group ID.';
create index if not exists "IDX_bfbc6305547539369fe73eb144"
on user_group_invitation ("userId");
create index if not exists "IDX_5cc8c468090e129857e9fecce5"
on user_group_invitation ("userGroupId");
create unique index if not exists "IDX_e9793f65f504e5a31fbaedbf2f"
on user_group_invitation ("userId", "userGroupId");
create table if not exists relay
(
id varchar(32) not null
constraint "PK_78ebc9cfddf4292633b7ba57aee"
primary key,
inbox varchar(512) not null,
status relay_status_enum not null
);
create unique index if not exists "IDX_0d9a1738f2cf7f3b1c3334dfab"
on relay (inbox);
create table if not exists channel
(
id varchar(32) not null
constraint "PK_590f33ee6ee7d76437acf362e39"
primary key,
"createdAt" timestamp with time zone not null,
"lastNotedAt" timestamp with time zone,
"userId" varchar(32)
constraint "FK_823bae55bd81b3be6e05cff4383"
references "user"
on delete set null,
name varchar(128) not null,
description varchar(2048),
"bannerId" varchar(32)
constraint "FK_999da2bcc7efadbfe0e92d3bc19"
references drive_file
on delete set null,
"notesCount" integer default 0 not null,
"usersCount" integer default 0 not null
);
comment on column channel."createdAt" is 'The created date of the Channel.';
comment on column channel."userId" is 'The owner ID.';
comment on column channel.name is 'The name of the Channel.';
comment on column channel.description is 'The description of the Channel.';
comment on column channel."bannerId" is 'The ID of banner Channel.';
comment on column channel."notesCount" is 'The count of notes.';
comment on column channel."usersCount" is 'The count of users.';
create table if not exists note
(
id varchar(32) not null
constraint "PK_96d0c172a4fba276b1bbed43058"
primary key,
"createdAt" timestamp with time zone not null,
"replyId" varchar(32)
constraint "FK_17cb3553c700a4985dff5a30ff5"
references note
on delete cascade,
"renoteId" varchar(32)
constraint "FK_52ccc804d7c69037d558bac4c96"
references note
on delete cascade,
text text,
name varchar(256),
cw varchar(512),
"userId" varchar(32) not null
constraint "FK_5b87d9d19127bd5d92026017a7b"
references "user"
on delete cascade,
"localOnly" boolean default false not null,
"renoteCount" smallint default 0 not null,
"repliesCount" smallint default 0 not null,
reactions jsonb default '{}'::jsonb not null,
visibility note_visibility_enum not null,
uri varchar(512),
score integer default 0 not null,
"fileIds" varchar(32)[] default '{}'::character varying[] not null,
"attachedFileTypes" varchar(256)[] default '{}'::character varying[] not null,
"visibleUserIds" varchar(32)[] default '{}'::character varying[] not null,
mentions varchar(32)[] default '{}'::character varying[] not null,
"mentionedRemoteUsers" text default '[]'::text not null,
emojis varchar(128)[] default '{}'::character varying[] not null,
tags varchar(128)[] default '{}'::character varying[] not null,
"hasPoll" boolean default false not null,
"userHost" varchar(128),
"replyUserId" varchar(32),
"replyUserHost" varchar(128),
"renoteUserId" varchar(32),
"renoteUserHost" varchar(128),
url varchar(512),
"channelId" varchar(32)
constraint "FK_f22169eb10657bded6d875ac8f9"
references channel
on delete cascade,
"threadId" varchar(256),
"updatedAt" timestamp with time zone
);
comment on column note."createdAt" is 'The created date of the Note.';
comment on column note."replyId" is 'The ID of reply target.';
comment on column note."renoteId" is 'The ID of renote target.';
comment on column note."userId" is 'The ID of author.';
comment on column note.uri is 'The URI of a note. it will be null when the note is local.';
comment on column note."userHost" is '[Denormalized]';
comment on column note."replyUserId" is '[Denormalized]';
comment on column note."replyUserHost" is '[Denormalized]';
comment on column note."renoteUserId" is '[Denormalized]';
comment on column note."renoteUserHost" is '[Denormalized]';
comment on column note.url is 'The human readable url of a note. it will be null when the note is local.';
comment on column note."channelId" is 'The ID of source channel.';
comment on column note."updatedAt" is 'The updated date of the Note.';
create index if not exists "IDX_e7c0567f5261063592f022e9b5"
on note ("createdAt");
create index if not exists "IDX_17cb3553c700a4985dff5a30ff"
on note ("replyId");
create index if not exists "IDX_52ccc804d7c69037d558bac4c9"
on note ("renoteId");
create index if not exists "IDX_5b87d9d19127bd5d92026017a7"
on note ("userId");
create unique index if not exists "IDX_153536c67d05e9adb24e99fc2b"
on note (uri);
create index if not exists "IDX_51c063b6a133a9cb87145450f5"
on note ("fileIds");
create index if not exists "IDX_25dfc71b0369b003a4cd434d0b"
on note ("attachedFileTypes");
create index if not exists "IDX_796a8c03959361f97dc2be1d5c"
on note ("visibleUserIds");
create index if not exists "IDX_54ebcb6d27222913b908d56fd8"
on note (mentions);
create index if not exists "IDX_88937d94d7443d9a99a76fa5c0"
on note (tags);
create index if not exists "IDX_7125a826ab192eb27e11d358a5"
on note ("userHost");
create index if not exists "IDX_NOTE_TAGS"
on note using gin (tags);
create index if not exists "IDX_NOTE_MENTIONS"
on note using gin (mentions);
create index if not exists "IDX_NOTE_VISIBLE_USER_IDS"
on note using gin ("visibleUserIds");
create index if not exists "IDX_d4ebdef929896d6dc4a3c5bb48"
on note ("threadId");
create index if not exists "IDX_f22169eb10657bded6d875ac8f"
on note ("channelId");
create table if not exists poll_vote
(
id varchar(32) not null
constraint "PK_fd002d371201c472490ba89c6a0"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_66d2bd2ee31d14bcc23069a89f8"
references "user"
on delete cascade,
"noteId" varchar(32) not null
constraint "FK_aecfbd5ef60374918e63ee95fa7"
references note
on delete cascade,
choice integer not null
);
comment on column poll_vote."createdAt" is 'The created date of the PollVote.';
create index if not exists "IDX_0fb627e1c2f753262a74f0562d"
on poll_vote ("createdAt");
create index if not exists "IDX_66d2bd2ee31d14bcc23069a89f"
on poll_vote ("userId");
create index if not exists "IDX_aecfbd5ef60374918e63ee95fa"
on poll_vote ("noteId");
create unique index if not exists "IDX_50bd7164c5b78f1f4a42c4d21f"
on poll_vote ("userId", "noteId", choice);
create table if not exists note_reaction
(
id varchar(32) not null
constraint "PK_767ec729b108799b587a3fcc9cf"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_13761f64257f40c5636d0ff95ee"
references "user"
on delete cascade,
"noteId" varchar(32) not null
constraint "FK_45145e4953780f3cd5656f0ea6a"
references note
on delete cascade,
reaction varchar(260) not null
);
comment on column note_reaction."createdAt" is 'The created date of the NoteReaction.';
create index if not exists "IDX_01f4581f114e0ebd2bbb876f0b"
on note_reaction ("createdAt");
create index if not exists "IDX_13761f64257f40c5636d0ff95e"
on note_reaction ("userId");
create index if not exists "IDX_45145e4953780f3cd5656f0ea6"
on note_reaction ("noteId");
create unique index if not exists "IDX_ad0c221b25672daf2df320a817"
on note_reaction ("userId", "noteId");
create table if not exists note_watching
(
id varchar(32) not null
constraint "PK_49286fdb23725945a74aa27d757"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_b0134ec406e8d09a540f8182888"
references "user"
on delete cascade,
"noteId" varchar(32) not null
constraint "FK_03e7028ab8388a3f5e3ce2a8619"
references note
on delete cascade,
"noteUserId" varchar(32) not null
);
comment on column note_watching."createdAt" is 'The created date of the NoteWatching.';
comment on column note_watching."userId" is 'The watcher ID.';
comment on column note_watching."noteId" is 'The target Note ID.';
comment on column note_watching."noteUserId" is '[Denormalized]';
create index if not exists "IDX_318cdf42a9cfc11f479bd802bb"
on note_watching ("createdAt");
create index if not exists "IDX_b0134ec406e8d09a540f818288"
on note_watching ("userId");
create index if not exists "IDX_03e7028ab8388a3f5e3ce2a861"
on note_watching ("noteId");
create index if not exists "IDX_44499765eec6b5489d72c4253b"
on note_watching ("noteUserId");
create unique index if not exists "IDX_a42c93c69989ce1d09959df4cf"
on note_watching ("userId", "noteId");
create table if not exists note_unread
(
id varchar(32) not null
constraint "PK_1904eda61a784f57e6e51fa9c1f"
primary key,
"userId" varchar(32) not null
constraint "FK_56b0166d34ddae49d8ef7610bb9"
references "user"
on delete cascade,
"noteId" varchar(32) not null
constraint "FK_e637cba4dc4410218c4251260e4"
references note
on delete cascade,
"noteUserId" varchar(32) not null,
"isSpecified" boolean not null,
"isMentioned" boolean not null,
"noteChannelId" varchar(32)
);
comment on column note_unread."noteUserId" is '[Denormalized]';
comment on column note_unread."noteChannelId" is '[Denormalized]';
create index if not exists "IDX_56b0166d34ddae49d8ef7610bb"
on note_unread ("userId");
create index if not exists "IDX_e637cba4dc4410218c4251260e"
on note_unread ("noteId");
create unique index if not exists "IDX_d908433a4953cc13216cd9c274"
on note_unread ("userId", "noteId");
create index if not exists "IDX_25b1dd384bec391b07b74b861c"
on note_unread ("isMentioned");
create index if not exists "IDX_89a29c9237b8c3b6b3cbb4cb30"
on note_unread ("isSpecified");
create index if not exists "IDX_29e8c1d579af54d4232939f994"
on note_unread ("noteUserId");
create index if not exists "IDX_6a57f051d82c6d4036c141e107"
on note_unread ("noteChannelId");
create table if not exists notification
(
id varchar(32) not null
constraint "PK_705b6c7cdf9b2c2ff7ac7872cb7"
primary key,
"createdAt" timestamp with time zone not null,
"notifieeId" varchar(32) not null
constraint "FK_3c601b70a1066d2c8b517094cb9"
references "user"
on delete cascade,
"notifierId" varchar(32)
constraint "FK_3b4e96eec8d36a8bbb9d02aa710"
references "user"
on delete cascade,
"isRead" boolean default false not null,
"noteId" varchar(32)
constraint "FK_769cb6b73a1efe22ddf733ac453"
references note
on delete cascade,
reaction varchar(128),
choice integer,
"followRequestId" varchar(32)
constraint "FK_bd7fab507621e635b32cd31892c"
references follow_request
on delete cascade,
type notification_type_enum not null,
"userGroupInvitationId" varchar(32)
constraint "FK_8fe87814e978053a53b1beb7e98"
references user_group_invitation
on delete cascade,
"customBody" varchar(2048),
"customHeader" varchar(256),
"customIcon" varchar(1024),
"appAccessTokenId" varchar(32)
constraint "FK_e22bf6bda77b6adc1fd9e75c8c9"
references access_token
on delete cascade
);
comment on column notification."createdAt" is 'The created date of the Notification.';
comment on column notification."notifieeId" is 'The ID of recipient user of the Notification.';
comment on column notification."notifierId" is 'The ID of sender user of the Notification.';
comment on column notification."isRead" is 'Whether the Notification is read.';
comment on column notification.type is 'The type of the Notification.';
create index if not exists "IDX_b11a5e627c41d4dc3170f1d370"
on notification ("createdAt");
create index if not exists "IDX_3c601b70a1066d2c8b517094cb"
on notification ("notifieeId");
create index if not exists "IDX_3b4e96eec8d36a8bbb9d02aa71"
on notification ("notifierId");
create index if not exists "IDX_080ab397c379af09b9d2169e5b"
on notification ("isRead");
create index if not exists "IDX_e22bf6bda77b6adc1fd9e75c8c"
on notification ("appAccessTokenId");
create index if not exists "IDX_33f33cc8ef29d805a97ff4628b"
on notification (type);
create table if not exists note_favorite
(
id varchar(32) not null
constraint "PK_af0da35a60b9fa4463a62082b36"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_47f4b1892f5d6ba8efb3057d81a"
references "user"
on delete cascade,
"noteId" varchar(32) not null
constraint "FK_0e00498f180193423c992bc4370"
references note
on delete cascade
);
comment on column note_favorite."createdAt" is 'The created date of the NoteFavorite.';
create index if not exists "IDX_47f4b1892f5d6ba8efb3057d81"
on note_favorite ("userId");
create unique index if not exists "IDX_0f4fb9ad355f3effff221ef245"
on note_favorite ("userId", "noteId");
create table if not exists user_note_pining
(
id varchar(32) not null
constraint "PK_a6a2dad4ae000abce2ea9d9b103"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_bfbc6f79ba4007b4ce5097f08d6"
references "user"
on delete cascade,
"noteId" varchar(32) not null
constraint "FK_68881008f7c3588ad7ecae471cf"
references note
on delete cascade
);
comment on column user_note_pining."createdAt" is 'The created date of the UserNotePinings.';
create index if not exists "IDX_bfbc6f79ba4007b4ce5097f08d"
on user_note_pining ("userId");
create unique index if not exists "IDX_410cd649884b501c02d6e72738"
on user_note_pining ("userId", "noteId");
create table if not exists poll
(
"noteId" varchar(32) not null
constraint "PK_da851e06d0dfe2ef397d8b1bf1b"
primary key
constraint "UQ_da851e06d0dfe2ef397d8b1bf1b"
unique
constraint "FK_da851e06d0dfe2ef397d8b1bf1b"
references note
on delete cascade,
"expiresAt" timestamp with time zone,
multiple boolean not null,
choices varchar(256)[] default '{}'::character varying[] not null,
votes integer[] not null,
"noteVisibility" poll_notevisibility_enum not null,
"userId" varchar(32) not null,
"userHost" varchar(128)
);
comment on column poll."noteVisibility" is '[Denormalized]';
comment on column poll."userId" is '[Denormalized]';
comment on column poll."userHost" is '[Denormalized]';
create index if not exists "IDX_0610ebcfcfb4a18441a9bcdab2"
on poll ("userId");
create index if not exists "IDX_7fa20a12319c7f6dc3aed98c0a"
on poll ("userHost");
create table if not exists clip_note
(
id varchar(32) not null
constraint "PK_e94cda2f40a99b57e032a1a738b"
primary key,
"noteId" varchar(32) not null
constraint "FK_a012eaf5c87c65da1deb5fdbfa3"
references note
on delete cascade,
"clipId" varchar(32) not null
constraint "FK_ebe99317bbbe9968a0c6f579adf"
references clip
on delete cascade
);
comment on column clip_note."noteId" is 'The note ID.';
comment on column clip_note."clipId" is 'The clip ID.';
create index if not exists "IDX_a012eaf5c87c65da1deb5fdbfa"
on clip_note ("noteId");
create index if not exists "IDX_ebe99317bbbe9968a0c6f579ad"
on clip_note ("clipId");
create unique index if not exists "IDX_6fc0ec357d55a18646262fdfff"
on clip_note ("noteId", "clipId");
create table if not exists antenna_note
(
id varchar(32) not null
constraint "PK_fb28d94d0989a3872df19fd6ef8"
primary key,
"noteId" varchar(32) not null
constraint "FK_bd0397be22147e17210940e125b"
references note
on delete cascade,
"antennaId" varchar(32) not null
constraint "FK_0d775946662d2575dfd2068a5f5"
references antenna
on delete cascade,
read boolean default false not null
);
comment on column antenna_note."noteId" is 'The note ID.';
comment on column antenna_note."antennaId" is 'The antenna ID.';
create index if not exists "IDX_bd0397be22147e17210940e125"
on antenna_note ("noteId");
create index if not exists "IDX_0d775946662d2575dfd2068a5f"
on antenna_note ("antennaId");
create unique index if not exists "IDX_335a0bf3f904406f9ef3dd51c2"
on antenna_note ("noteId", "antennaId");
create index if not exists "IDX_9937ea48d7ae97ffb4f3f063a4"
on antenna_note (read);
create table if not exists promo_note
(
"noteId" varchar(32) not null
constraint "PK_e263909ca4fe5d57f8d4230dd5c"
primary key
constraint "UQ_e263909ca4fe5d57f8d4230dd5c"
unique
constraint "FK_e263909ca4fe5d57f8d4230dd5c"
references note
on delete cascade,
"expiresAt" timestamp with time zone not null,
"userId" varchar(32) not null
);
comment on column promo_note."userId" is '[Denormalized]';
create index if not exists "IDX_83f0862e9bae44af52ced7099e"
on promo_note ("userId");
create table if not exists promo_read
(
id varchar(32) not null
constraint "PK_61917c1541002422b703318b7c9"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_9657d55550c3d37bfafaf7d4b05"
references "user"
on delete cascade,
"noteId" varchar(32) not null
constraint "FK_a46a1a603ecee695d7db26da5f4"
references note
on delete cascade
);
comment on column promo_read."createdAt" is 'The created date of the PromoRead.';
create index if not exists "IDX_9657d55550c3d37bfafaf7d4b0"
on promo_read ("userId");
create unique index if not exists "IDX_2882b8a1a07c7d281a98b6db16"
on promo_read ("userId", "noteId");
create table if not exists muted_note
(
id varchar(32) not null
constraint "PK_897e2eff1c0b9b64e55ca1418a4"
primary key,
"noteId" varchar(32) not null
constraint "FK_70ab9786313d78e4201d81cdb89"
references note
on delete cascade,
"userId" varchar(32) not null
constraint "FK_d8e07aa18c2d64e86201601aec1"
references "user"
on delete cascade,
reason muted_note_reason_enum not null
);
comment on column muted_note."noteId" is 'The note ID.';
comment on column muted_note."userId" is 'The user ID.';
comment on column muted_note.reason is 'The reason of the MutedNote.';
create index if not exists "IDX_70ab9786313d78e4201d81cdb8"
on muted_note ("noteId");
create index if not exists "IDX_d8e07aa18c2d64e86201601aec"
on muted_note ("userId");
create unique index if not exists "IDX_a8c6bfd637d3f1d67a27c48e27"
on muted_note ("noteId", "userId");
create index if not exists "IDX_636e977ff90b23676fb5624b25"
on muted_note (reason);
create index if not exists "IDX_71cb7b435b7c0d4843317e7e16"
on channel ("createdAt");
create index if not exists "IDX_29ef80c6f13bcea998447fce43"
on channel ("lastNotedAt");
create index if not exists "IDX_823bae55bd81b3be6e05cff438"
on channel ("userId");
create index if not exists "IDX_0f58c11241e649d2a638a8de94"
on channel ("notesCount");
create index if not exists "IDX_094b86cd36bb805d1aa1e8cc9a"
on channel ("usersCount");
create table if not exists channel_following
(
id varchar(32) not null
constraint "PK_8b104be7f7415113f2a02cd5bdd"
primary key,
"createdAt" timestamp with time zone not null,
"followeeId" varchar(32) not null
constraint "FK_0e43068c3f92cab197c3d3cd86e"
references channel
on delete cascade,
"followerId" varchar(32) not null
constraint "FK_6d8084ec9496e7334a4602707e1"
references "user"
on delete cascade
);
comment on column channel_following."createdAt" is 'The created date of the ChannelFollowing.';
comment on column channel_following."followeeId" is 'The followee channel ID.';
comment on column channel_following."followerId" is 'The follower user ID.';
create index if not exists "IDX_11e71f2511589dcc8a4d3214f9"
on channel_following ("createdAt");
create index if not exists "IDX_0e43068c3f92cab197c3d3cd86"
on channel_following ("followeeId");
create index if not exists "IDX_6d8084ec9496e7334a4602707e"
on channel_following ("followerId");
create unique index if not exists "IDX_2e230dd45a10e671d781d99f3e"
on channel_following ("followerId", "followeeId");
create table if not exists channel_note_pining
(
id varchar(32) not null
constraint "PK_44f7474496bcf2e4b741681146d"
primary key,
"createdAt" timestamp with time zone not null,
"channelId" varchar(32) not null
constraint "FK_8125f950afd3093acb10d2db8a8"
references channel
on delete cascade,
"noteId" varchar(32) not null
constraint "FK_10b19ef67d297ea9de325cd4502"
references note
on delete cascade
);
comment on column channel_note_pining."createdAt" is 'The created date of the ChannelNotePining.';
create index if not exists "IDX_8125f950afd3093acb10d2db8a"
on channel_note_pining ("channelId");
create unique index if not exists "IDX_f36fed37d6d4cdcc68c803cd9c"
on channel_note_pining ("channelId", "noteId");
create table if not exists registry_item
(
id varchar(32) not null
constraint "PK_64b3f7e6008b4d89b826cd3af95"
primary key,
"createdAt" timestamp with time zone not null,
"updatedAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_fb9d21ba0abb83223263df6bcb3"
references "user"
on delete cascade,
key varchar(1024) not null,
scope varchar(1024)[] default '{}'::character varying[] not null,
domain varchar(512),
value jsonb default '{}'::jsonb
);
comment on column registry_item."createdAt" is 'The created date of the RegistryItem.';
comment on column registry_item."updatedAt" is 'The updated date of the RegistryItem.';
comment on column registry_item."userId" is 'The owner ID.';
comment on column registry_item.key is 'The key of the RegistryItem.';
comment on column registry_item.value is 'The value of the RegistryItem.';
create index if not exists "IDX_fb9d21ba0abb83223263df6bcb"
on registry_item ("userId");
create index if not exists "IDX_22baca135bb8a3ea1a83d13df3"
on registry_item (scope);
create index if not exists "IDX_0a72bdfcdb97c0eca11fe7ecad"
on registry_item (domain);
create table if not exists gallery_post
(
id varchar(32) not null
constraint "PK_8e90d7b6015f2c4518881b14753"
primary key,
"createdAt" timestamp with time zone not null,
"updatedAt" timestamp with time zone not null,
title varchar(256) not null,
description varchar(2048),
"userId" varchar(32) not null
constraint "FK_985b836dddd8615e432d7043ddb"
references "user"
on delete cascade,
"fileIds" varchar(32)[] default '{}'::character varying[] not null,
"isSensitive" boolean default false not null,
"likedCount" integer default 0 not null,
tags varchar(128)[] default '{}'::character varying[] not null
);
comment on column gallery_post."createdAt" is 'The created date of the GalleryPost.';
comment on column gallery_post."updatedAt" is 'The updated date of the GalleryPost.';
comment on column gallery_post."userId" is 'The ID of author.';
comment on column gallery_post."isSensitive" is 'Whether the post is sensitive.';
create index if not exists "IDX_8f1a239bd077c8864a20c62c2c"
on gallery_post ("createdAt");
create index if not exists "IDX_f631d37835adb04792e361807c"
on gallery_post ("updatedAt");
create index if not exists "IDX_985b836dddd8615e432d7043dd"
on gallery_post ("userId");
create index if not exists "IDX_3ca50563facd913c425e7a89ee"
on gallery_post ("fileIds");
create index if not exists "IDX_f2d744d9a14d0dfb8b96cb7fc5"
on gallery_post ("isSensitive");
create index if not exists "IDX_1a165c68a49d08f11caffbd206"
on gallery_post ("likedCount");
create index if not exists "IDX_05cca34b985d1b8edc1d1e28df"
on gallery_post (tags);
create table if not exists gallery_like
(
id varchar(32) not null
constraint "PK_853ab02be39b8de45cd720cc15f"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_8fd5215095473061855ceb948cf"
references "user"
on delete cascade,
"postId" varchar(32) not null
constraint "FK_b1cb568bfe569e47b7051699fc8"
references gallery_post
on delete cascade
);
create index if not exists "IDX_8fd5215095473061855ceb948c"
on gallery_like ("userId");
create unique index if not exists "IDX_df1b5f4099e99fb0bc5eae53b6"
on gallery_like ("userId", "postId");
create table if not exists password_reset_request
(
id varchar(32) not null
constraint "PK_fcf4b02eae1403a2edaf87fd074"
primary key,
"createdAt" timestamp with time zone not null,
token varchar(256) not null,
"userId" varchar(32) not null
constraint "FK_4bb7fd4a34492ae0e6cc8d30ac8"
references "user"
on delete cascade
);
create unique index if not exists "IDX_0b575fa9a4cfe638a925949285"
on password_reset_request (token);
create index if not exists "IDX_4bb7fd4a34492ae0e6cc8d30ac"
on password_reset_request ("userId");
create table if not exists ad
(
id varchar(32) not null
constraint "PK_0193d5ef09746e88e9ea92c634d"
primary key,
"createdAt" timestamp with time zone not null,
"expiresAt" timestamp with time zone not null,
place varchar(32) not null,
priority varchar(32) not null,
url varchar(1024) not null,
"imageUrl" varchar(1024) not null,
memo varchar(8192) not null,
ratio integer default 1 not null
);
comment on column ad."createdAt" is 'The created date of the Ad.';
comment on column ad."expiresAt" is 'The expired date of the Ad.';
create index if not exists "IDX_1129c2ef687fc272df040bafaa"
on ad ("createdAt");
create index if not exists "IDX_2da24ce20ad209f1d9dc032457"
on ad ("expiresAt");
create table if not exists user_pending
(
id varchar(32) not null
constraint "PK_d4c84e013c98ec02d19b8fbbafa"
primary key,
"createdAt" timestamp with time zone not null,
code varchar(128) not null,
username varchar(128) not null,
email varchar(128) not null,
password varchar(128) not null
);
create unique index if not exists "IDX_4e5c4c99175638ec0761714ab0"
on user_pending (code);
create table if not exists note_thread_muting
(
id varchar(32) not null
constraint "PK_ec5936d94d1a0369646d12a3a47"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_29c11c7deb06615076f8c95b80a"
references "user"
on delete cascade,
"threadId" varchar(256) not null
);
create index if not exists "IDX_29c11c7deb06615076f8c95b80"
on note_thread_muting ("userId");
create index if not exists "IDX_c426394644267453e76f036926"
on note_thread_muting ("threadId");
create unique index if not exists "IDX_ae7aab18a2641d3e5f25e0c4ea"
on note_thread_muting ("userId", "threadId");
create table if not exists __chart_day__federation
(
id serial
constraint "PK_7ca721c769f31698e0e1331e8e6"
primary key,
date integer not null
constraint "UQ_617a8fe225a6e701d89e02d2c74"
unique,
"unique_temp___deliveredInstances" character varying[] default '{}'::character varying[] not null,
"___deliveredInstances" smallint default '0'::smallint not null,
"unique_temp___inboxInstances" character varying[] default '{}'::character varying[] not null,
"___inboxInstances" smallint default '0'::smallint not null,
unique_temp___stalled character varying[] default '{}'::character varying[] not null,
___stalled smallint default '0'::smallint not null,
___sub smallint default '0'::smallint not null,
___pub smallint default '0'::smallint not null,
___pubsub smallint default '0'::smallint not null,
"___subActive" smallint default '0'::smallint not null,
"___pubActive" smallint default '0'::smallint not null
);
create unique index if not exists "IDX_617a8fe225a6e701d89e02d2c7"
on __chart_day__federation (date);
create table if not exists __chart_day__notes
(
id serial
constraint "PK_1fa4139e1f338272b758d05e090"
primary key,
date integer not null
constraint "UQ_1a527b423ad0858a1af5a056d43"
unique,
___local_total integer default '0'::bigint not null,
___local_inc integer default '0'::bigint not null,
___local_dec integer default '0'::bigint not null,
___local_diffs_normal integer default '0'::bigint not null,
___local_diffs_reply integer default '0'::bigint not null,
___local_diffs_renote integer default '0'::bigint not null,
___remote_total integer default '0'::bigint not null,
___remote_inc integer default '0'::bigint not null,
___remote_dec integer default '0'::bigint not null,
___remote_diffs_normal integer default '0'::bigint not null,
___remote_diffs_reply integer default '0'::bigint not null,
___remote_diffs_renote integer default '0'::bigint not null,
"___local_diffs_withFile" integer default 0 not null,
"___remote_diffs_withFile" integer default 0 not null
);
create unique index if not exists "IDX_1a527b423ad0858a1af5a056d4"
on __chart_day__notes (date);
create table if not exists __chart_day__users
(
id serial
constraint "PK_d7f7185abb9851f70c4726c54bd"
primary key,
date integer not null
constraint "UQ_cad6e07c20037f31cdba8a350c3"
unique,
___local_total integer default '0'::bigint not null,
___local_inc smallint default '0'::bigint not null,
___local_dec smallint default '0'::bigint not null,
___remote_total integer default '0'::bigint not null,
___remote_inc smallint default '0'::bigint not null,
___remote_dec smallint default '0'::bigint not null
);
create unique index if not exists "IDX_cad6e07c20037f31cdba8a350c"
on __chart_day__users (date);
create table if not exists __chart_day__network
(
id serial
constraint "PK_cac499d6f471042dfed1e7e0132"
primary key,
date integer not null
constraint "UQ_8bfa548c2b31f9e07db113773ee"
unique,
"___incomingRequests" integer default '0'::bigint not null,
"___outgoingRequests" integer default '0'::bigint not null,
"___totalTime" integer default '0'::bigint not null,
"___incomingBytes" integer default '0'::bigint not null,
"___outgoingBytes" integer default '0'::bigint not null
);
create unique index if not exists "IDX_8bfa548c2b31f9e07db113773e"
on __chart_day__network (date);
create table if not exists __chart_day__active_users
(
id serial
constraint "PK_b1790489b14f005ae8f404f5795"
primary key,
date integer not null
constraint "UQ_d5954f3df5e5e3bdfc3c03f3906"
unique,
"unique_temp___registeredWithinWeek" character varying[] default '{}'::character varying[] not null,
"___registeredWithinWeek" smallint default '0'::smallint not null,
"unique_temp___registeredWithinMonth" character varying[] default '{}'::character varying[] not null,
"___registeredWithinMonth" smallint default '0'::smallint not null,
"unique_temp___registeredWithinYear" character varying[] default '{}'::character varying[] not null,
"___registeredWithinYear" smallint default '0'::smallint not null,
"unique_temp___registeredOutsideWeek" character varying[] default '{}'::character varying[] not null,
"___registeredOutsideWeek" smallint default '0'::smallint not null,
"unique_temp___registeredOutsideMonth" character varying[] default '{}'::character varying[] not null,
"___registeredOutsideMonth" smallint default '0'::smallint not null,
"unique_temp___registeredOutsideYear" character varying[] default '{}'::character varying[] not null,
"___registeredOutsideYear" smallint default '0'::smallint not null,
"___readWrite" smallint default '0'::smallint not null,
unique_temp___read character varying[] default '{}'::character varying[] not null,
___read smallint default '0'::smallint not null,
unique_temp___write character varying[] default '{}'::character varying[] not null,
___write smallint default '0'::smallint not null
);
create unique index if not exists "IDX_d5954f3df5e5e3bdfc3c03f390"
on __chart_day__active_users (date);
create table if not exists __chart_day__instance
(
id serial
constraint "PK_479a8ff9d959274981087043023"
primary key,
date integer not null,
"group" varchar(128) not null,
___requests_failed smallint default '0'::bigint not null,
___requests_succeeded smallint default '0'::bigint not null,
___requests_received smallint default '0'::bigint not null,
___notes_total integer default '0'::bigint not null,
___notes_inc integer default '0'::bigint not null,
___notes_dec integer default '0'::bigint not null,
___notes_diffs_normal integer default '0'::bigint not null,
___notes_diffs_reply integer default '0'::bigint not null,
___notes_diffs_renote integer default '0'::bigint not null,
___users_total integer default '0'::bigint not null,
___users_inc smallint default '0'::bigint not null,
___users_dec smallint default '0'::bigint not null,
___following_total integer default '0'::bigint not null,
___following_inc smallint default '0'::bigint not null,
___following_dec smallint default '0'::bigint not null,
___followers_total integer default '0'::bigint not null,
___followers_inc smallint default '0'::bigint not null,
___followers_dec smallint default '0'::bigint not null,
"___drive_totalFiles" integer default '0'::bigint not null,
"___drive_incFiles" integer default '0'::bigint not null,
"___drive_incUsage" integer default '0'::bigint not null,
"___drive_decFiles" integer default '0'::bigint not null,
"___drive_decUsage" integer default '0'::bigint not null,
"___notes_diffs_withFile" integer default 0 not null,
constraint "UQ_fea7c0278325a1a2492f2d6acbf"
unique (date, "group")
);
create unique index if not exists "IDX_fea7c0278325a1a2492f2d6acb"
on __chart_day__instance (date, "group");
create table if not exists __chart_day__per_user_notes
(
id serial
constraint "PK_58bab6b6d3ad9310cbc7460fd28"
primary key,
date integer not null,
"group" varchar(128) not null,
___total integer default '0'::bigint not null,
___inc smallint default '0'::bigint not null,
___dec smallint default '0'::bigint not null,
___diffs_normal smallint default '0'::bigint not null,
___diffs_reply smallint default '0'::bigint not null,
___diffs_renote smallint default '0'::bigint not null,
"___diffs_withFile" smallint default '0'::smallint not null,
constraint "UQ_c5545d4b31cdc684034e33b81c3"
unique (date, "group")
);
create unique index if not exists "IDX_c5545d4b31cdc684034e33b81c"
on __chart_day__per_user_notes (date, "group");
create table if not exists __chart_day__drive
(
id serial
constraint "PK_e7ec0de057c77c40fc8d8b62151"
primary key,
date integer not null
constraint "UQ_0b60ebb3aa0065f10b0616c1171"
unique,
"___local_incCount" integer default '0'::bigint not null,
"___local_incSize" integer default '0'::bigint not null,
"___local_decCount" integer default '0'::bigint not null,
"___local_decSize" integer default '0'::bigint not null,
"___remote_incCount" integer default '0'::bigint not null,
"___remote_incSize" integer default '0'::bigint not null,
"___remote_decCount" integer default '0'::bigint not null,
"___remote_decSize" integer default '0'::bigint not null
);
create unique index if not exists "IDX_0b60ebb3aa0065f10b0616c117"
on __chart_day__drive (date);
create table if not exists __chart_day__per_user_reaction
(
id serial
constraint "PK_8af24e2d51ff781a354fe595eda"
primary key,
date integer not null,
"group" varchar(128) not null,
___local_count smallint default '0'::bigint not null,
___remote_count smallint default '0'::bigint not null,
constraint "UQ_d54b653660d808b118e36c184c0"
unique (date, "group")
);
create unique index if not exists "IDX_d54b653660d808b118e36c184c"
on __chart_day__per_user_reaction (date, "group");
create table if not exists __chart_day__hashtag
(
id serial
constraint "PK_13d5a3b089344e5557f8e0980b4"
primary key,
date integer not null,
"group" varchar(128) not null,
___local_users integer default 0 not null,
___remote_users integer default 0 not null,
unique_temp___local_users character varying[] default '{}'::character varying[] not null,
unique_temp___remote_users character varying[] default '{}'::character varying[] not null,
constraint "UQ_8f589cf056ff51f09d6096f6450"
unique (date, "group")
);
create unique index if not exists "IDX_8f589cf056ff51f09d6096f645"
on __chart_day__hashtag (date, "group");
create table if not exists __chart_day__per_user_following
(
id serial
constraint "PK_68ce6b67da57166da66fc8fb27e"
primary key,
date integer not null,
"group" varchar(128) not null,
___local_followings_total integer default '0'::bigint not null,
___local_followings_inc smallint default '0'::bigint not null,
___local_followings_dec smallint default '0'::bigint not null,
___local_followers_total integer default '0'::bigint not null,
___local_followers_inc smallint default '0'::bigint not null,
___local_followers_dec smallint default '0'::bigint not null,
___remote_followings_total integer default '0'::bigint not null,
___remote_followings_inc smallint default '0'::bigint not null,
___remote_followings_dec smallint default '0'::bigint not null,
___remote_followers_total integer default '0'::bigint not null,
___remote_followers_inc smallint default '0'::bigint not null,
___remote_followers_dec smallint default '0'::bigint not null,
constraint "UQ_e4849a3231f38281280ea4c0eee"
unique (date, "group")
);
create unique index if not exists "IDX_e4849a3231f38281280ea4c0ee"
on __chart_day__per_user_following (date, "group");
create table if not exists __chart_day__per_user_drive
(
id serial
constraint "PK_1ae135254c137011645da7f4045"
primary key,
date integer not null,
"group" varchar(128) not null,
"___totalCount" integer default '0'::bigint not null,
"___totalSize" integer default '0'::bigint not null,
"___incCount" smallint default '0'::bigint not null,
"___incSize" integer default '0'::bigint not null,
"___decCount" smallint default '0'::bigint not null,
"___decSize" integer default '0'::bigint not null,
constraint "UQ_62aa5047b5aec92524f24c701d7"
unique (date, "group")
);
create unique index if not exists "IDX_62aa5047b5aec92524f24c701d"
on __chart_day__per_user_drive (date, "group");
create table if not exists __chart__ap_request
(
id serial
constraint "PK_56a25cd447c7ee08876b3baf8d8"
primary key,
date integer not null
constraint "UQ_e56f4beac5746d44bc3e19c80d0"
unique,
"___deliverFailed" integer default 0 not null,
"___deliverSucceeded" integer default 0 not null,
"___inboxReceived" integer default 0 not null
);
create unique index if not exists "IDX_e56f4beac5746d44bc3e19c80d"
on __chart__ap_request (date);
create table if not exists __chart_day__ap_request
(
id serial
constraint "PK_9318b49daee320194e23f712e69"
primary key,
date integer not null
constraint "UQ_a848f66d6cec11980a5dd595822"
unique,
"___deliverFailed" integer default 0 not null,
"___deliverSucceeded" integer default 0 not null,
"___inboxReceived" integer default 0 not null
);
create unique index if not exists "IDX_a848f66d6cec11980a5dd59582"
on __chart_day__ap_request (date);
create table if not exists webhook
(
id varchar(32) not null
constraint "PK_e6765510c2d078db49632b59020"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_f272c8c8805969e6a6449c77b3c"
references "user"
on delete cascade,
name varchar(128) not null,
"on" varchar(128)[] default '{}'::character varying[] not null,
url varchar(1024) not null,
secret varchar(1024) not null,
active boolean default true not null,
"latestSentAt" timestamp with time zone,
"latestStatus" integer
);
comment on column webhook."createdAt" is 'The created date of the Antenna.';
comment on column webhook."userId" is 'The owner ID.';
comment on column webhook.name is 'The name of the Antenna.';
create index if not exists "IDX_f272c8c8805969e6a6449c77b3"
on webhook ("userId");
create index if not exists "IDX_8063a0586ed1dfbe86e982d961"
on webhook ("on");
create index if not exists "IDX_5a056076f76b2efe08216ba655"
on webhook (active);
create table if not exists user_ip
(
id serial
constraint "PK_2c44ddfbf7c0464d028dcef325e"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null,
ip varchar(128) not null
);
create index if not exists "IDX_7f7f1c66f48e9a8e18a33bc515"
on user_ip ("userId");
create unique index if not exists "IDX_361b500e06721013c124b7b6c5"
on user_ip ("userId", ip);
create table if not exists renote_muting
(
id varchar(32) not null
constraint "PK_renoteMuting_id"
primary key,
"createdAt" timestamp with time zone not null,
"muteeId" varchar(32) not null,
"muterId" varchar(32) not null
);
create table if not exists note_edit
(
id varchar(32) not null
constraint "PK_736fc6e0d4e222ecc6f82058e08"
primary key,
"noteId" varchar(32) not null
constraint "FK_702ad5ae993a672e4fbffbcd38c"
references note
on delete cascade,
text text,
cw varchar(512),
"fileIds" varchar(32)[] default '{}'::character varying[] not null,
"updatedAt" timestamp with time zone not null
);
comment on column note_edit."noteId" is 'The ID of note.';
comment on column note_edit."updatedAt" is 'The updated date of the Note.';
create index if not exists "IDX_702ad5ae993a672e4fbffbcd38"
on note_edit ("noteId");
create or replace function note_replies(start_id character varying, max_depth integer, max_breadth integer)
returns TABLE(id character varying)
language sql
as
$$
SELECT DISTINCT id FROM (
WITH RECURSIVE tree (id, ancestors, depth) AS (
SELECT start_id, '{}'::VARCHAR[], 0
UNION
SELECT
note.id,
CASE
WHEN note."replyId" = tree.id THEN tree.ancestors || note."replyId"
ELSE tree.ancestors || note."renoteId"
END,
depth + 1
FROM note, tree
WHERE (
note."replyId" = tree.id
OR
(
-- get renotes but not pure renotes
note."renoteId" = tree.id
AND
(
note.text IS NOT NULL
OR
CARDINALITY(note."fileIds") != 0
OR
note."hasPoll" = TRUE
)
)
) AND depth < max_depth
)
SELECT
id,
-- apply the limit per node
row_number() OVER (PARTITION BY ancestors[array_upper(ancestors, 1)]) AS nth_child
FROM tree
WHERE depth > 0
) AS recursive WHERE nth_child < max_breadth
$$;