mirror of
https://iceshrimp.dev/crimekillz/trashposs
synced 2024-11-22 08:53:48 +01:00
1062 lines
56 KiB
MySQL
1062 lines
56 KiB
MySQL
|
-- Sharkey 2024.3.1 to Iceshrimp 2023.12.5 migration script
|
||
|
-- by @kopper@brain.d.on-t.work
|
||
|
-- only tested with aidx, theoretical support for aid and meid. other id schemes are NOT supported.
|
||
|
-- servers which have migrated from firefish and iceshrimp to sharkey may encounter undefined behavior, as
|
||
|
-- - sharkey's migration steps do not attempt to clean up unused firefish-exclusive data, meaning your database schema may have columns this script doesn't expect
|
||
|
-- - re-generating createdAt data from cuid2 is untested (though it *may* end up working with the default length of 16 characters)
|
||
|
-- no warranty, you're on your own if anything breaks.
|
||
|
-- make sure to run this script from the same postgres user as iceshrimp, otherwise you'll encounter permission errors
|
||
|
BEGIN;
|
||
|
|
||
|
-- createdAt generation functions
|
||
|
-- https://github.com/PrivateGER/Sharkey/blob/a2f7d3c265e70966b539dc3805a30b025350cc9c/packages/backend/migration/1704279150928-add-created-time.js
|
||
|
CREATE FUNCTION base36_decode(IN base36 varchar) RETURNS bigint AS $$
|
||
|
DECLARE
|
||
|
a char[];
|
||
|
ret bigint;
|
||
|
i int;
|
||
|
val int;
|
||
|
chars varchar;
|
||
|
BEGIN
|
||
|
chars := '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||
|
FOR i IN REVERSE char_length(base36)..1 LOOP
|
||
|
a := a || substring(upper(base36) FROM i FOR 1)::char;
|
||
|
END LOOP;
|
||
|
i := 0;
|
||
|
ret := 0;
|
||
|
WHILE i < (array_length(a,1)) LOOP
|
||
|
val := position(a[i+1] IN chars)-1;
|
||
|
ret := ret + (val * (36 ^ i));
|
||
|
i := i + 1;
|
||
|
END LOOP;
|
||
|
|
||
|
RETURN ret;
|
||
|
END;
|
||
|
$$ LANGUAGE plpgsql IMMUTABLE PARALLEL SAFE;
|
||
|
|
||
|
CREATE FUNCTION parseAId(id varchar)
|
||
|
RETURNS timestamp AS
|
||
|
$$
|
||
|
DECLARE
|
||
|
cutTimestamp varchar;
|
||
|
BEGIN
|
||
|
-- Conversion to timestamp (first eight characters)
|
||
|
cutTimestamp := substring(id FROM 1 FOR 8);
|
||
|
|
||
|
RETURN to_timestamp((base36_decode(cutTimestamp) + 946684800000) / 1000);
|
||
|
END;
|
||
|
$$ LANGUAGE plpgsql IMMUTABLE PARALLEL SAFE;
|
||
|
|
||
|
CREATE FUNCTION parseMeid(id varchar)
|
||
|
RETURNS timestamp AS
|
||
|
$$
|
||
|
BEGIN
|
||
|
RETURN to_timestamp(('x' || substring(id from 1 for 12))::bit(48)::bigint - x'800000000000'::bigint);
|
||
|
END;
|
||
|
$$ LANGUAGE plpgsql IMMUTABLE PARALLEL SAFE;
|
||
|
|
||
|
CREATE FUNCTION generate_created_at(id varchar)
|
||
|
RETURNS timestamp AS
|
||
|
$$
|
||
|
BEGIN
|
||
|
-- Check for aid (length 10, first 8 characters are base36)
|
||
|
IF length(id) = 10 AND substring(id from 1 for 8) ~* '^[0-9A-Z]{8}$' THEN
|
||
|
RETURN parseAId(id);
|
||
|
-- Check for aidx (16 base36 characters)
|
||
|
ELSIF length(id) = 16 AND id ~* '^[0-9A-Z]{16}$' THEN
|
||
|
RETURN parseAId(id);
|
||
|
-- Check for meid (24 hexadecimal characters)
|
||
|
ELSIF length(id) = 24 AND id ~* '^[0-9A-F]{24}$' THEN
|
||
|
RETURN parseMeid(id);
|
||
|
ELSE
|
||
|
RAISE EXCEPTION 'unrecognized id format: %', id;
|
||
|
END IF;
|
||
|
END;
|
||
|
$$ LANGUAGE plpgsql IMMUTABLE PARALLEL SAFE;
|
||
|
|
||
|
ALTER TABLE abuse_user_report ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE abuse_user_report SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE abuse_user_report ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE access_token ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE access_token SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE access_token ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE announcement ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE announcement SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE announcement ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE announcement_read ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE announcement_read SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE announcement_read ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE antenna ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE antenna SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE antenna ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE app ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE app SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE app ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE auth_session ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE auth_session SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE auth_session ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE blocking ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE blocking SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE blocking ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE channel ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE channel SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE channel ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE channel_following ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE channel_following SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE channel_following ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE clip ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE clip SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE clip ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE drive_file ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE drive_file SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE drive_file ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE drive_folder ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE drive_folder SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE drive_folder ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE follow_request ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE follow_request SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE follow_request ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE following ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE following SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE following ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE gallery_like ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE gallery_like SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE gallery_like ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE gallery_post ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE gallery_post SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE gallery_post ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE moderation_log ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE moderation_log SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE moderation_log ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE muting ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE muting SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE muting ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE note ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE note SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE note ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE note_favorite ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE note_favorite SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE note_favorite ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE note_reaction ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE note_reaction SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE note_reaction ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE note_thread_muting ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE note_thread_muting SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE note_thread_muting ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE page ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE page SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE page ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE page_like ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE page_like SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE page_like ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE password_reset_request ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE password_reset_request SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE password_reset_request ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE poll_vote ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE poll_vote SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE poll_vote ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE promo_read ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE promo_read SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE promo_read ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE registration_ticket ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE registration_ticket SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE registration_ticket ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE registry_item ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE registry_item SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE registry_item ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE renote_muting ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE renote_muting SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE renote_muting ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE signin ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE signin SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE signin ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE sw_subscription ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE sw_subscription SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE sw_subscription ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE "user" ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE "user" SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE "user" ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE user_list ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE user_list SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE user_list ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE user_list_membership ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE user_list_membership SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE user_list_membership ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE user_note_pining ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE user_note_pining SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE user_note_pining ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE user_pending ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE user_pending SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE user_pending ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE webhook ADD COLUMN "createdAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE webhook SET "createdAt" = generate_created_at(id);
|
||
|
ALTER TABLE webhook ALTER COLUMN "createdAt" SET NOT NULL;
|
||
|
|
||
|
-- createdAt cleanup
|
||
|
DROP FUNCTION base36_decode;
|
||
|
DROP FUNCTION parseAId;
|
||
|
DROP FUNCTION parseMeid;
|
||
|
DROP FUNCTION generate_created_at;
|
||
|
|
||
|
-- the rest of the owl
|
||
|
|
||
|
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
||
|
|
||
|
ALTER TYPE antenna_src_enum ADD VALUE 'group';
|
||
|
ALTER TYPE antenna_src_enum ADD VALUE 'instances';
|
||
|
-- DIFFERENCE: sharkey antenna_src_enum contains 'users_blacklist', not present on iceshrimp
|
||
|
|
||
|
DROP TYPE meta_sensitivemediadetection_enum CASCADE;
|
||
|
DROP TYPE meta_sensitivemediadetectionsensitivity_enum CASCADE;
|
||
|
|
||
|
DROP TYPE muted_note_reason_enum CASCADE;
|
||
|
|
||
|
ALTER TYPE note_visibility_enum ADD VALUE 'hidden';
|
||
|
ALTER TYPE poll_notevisibility_enum ADD VALUE 'hidden';
|
||
|
|
||
|
DROP TYPE notification_type_enum CASCADE;
|
||
|
CREATE TYPE notification_type_enum AS ENUM (
|
||
|
'follow',
|
||
|
'mention',
|
||
|
'reply',
|
||
|
'renote',
|
||
|
'quote',
|
||
|
'reaction',
|
||
|
'pollVote',
|
||
|
'pollEnded',
|
||
|
'receiveFollowRequest',
|
||
|
'followRequestAccepted',
|
||
|
'groupInvited',
|
||
|
'app'
|
||
|
);
|
||
|
|
||
|
DROP TYPE user_profile_mutingnotificationtypes_enum CASCADE;
|
||
|
CREATE TYPE user_profile_mutingnotificationtypes_enum AS ENUM (
|
||
|
'follow',
|
||
|
'mention',
|
||
|
'reply',
|
||
|
'renote',
|
||
|
'quote',
|
||
|
'reaction',
|
||
|
'pollVote',
|
||
|
'pollEnded',
|
||
|
'receiveFollowRequest',
|
||
|
'followRequestAccepted',
|
||
|
'groupInvited',
|
||
|
'app'
|
||
|
);
|
||
|
|
||
|
DROP TYPE role_target_enum CASCADE;
|
||
|
|
||
|
ALTER TYPE user_profile_followingvisibility_enum RENAME TO user_profile_ffvisibility_enum;
|
||
|
DROP TYPE "user_profile_followersVisibility_enum" CASCADE;
|
||
|
|
||
|
CREATE 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
|
||
|
$$;
|
||
|
|
||
|
|
||
|
DROP TABLE __chart__per_user_pv CASCADE;
|
||
|
DROP TABLE __chart_day__per_user_pv CASCADE;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN "___registeredWithinWeek" TYPE smallint;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN "___registeredWithinMonth" TYPE smallint;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN "___registeredWithinYear" TYPE smallint;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN "___registeredOutsideWeek" TYPE smallint;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN "___registeredOutsideMonth" TYPE smallint;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN "___registeredOutsideYear" TYPE smallint;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN "___readWrite" TYPE smallint;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN ___read TYPE smallint;
|
||
|
ALTER TABLE __chart__active_users ALTER COLUMN ___write TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN "___registeredWithinWeek" TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN "___registeredWithinMonth" TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN "___registeredWithinYear" TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN "___registeredOutsideWeek" TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN "___registeredOutsideMonth" TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN "___registeredOutsideYear" TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN "___readWrite" TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN ___read TYPE smallint;
|
||
|
ALTER TABLE __chart_day__active_users ALTER COLUMN ___write TYPE smallint;
|
||
|
|
||
|
ALTER TABLE "drive_file" ALTER COLUMN "userHost" TYPE character varying(512);
|
||
|
ALTER TABLE "user" ALTER COLUMN "host" TYPE character varying(512);
|
||
|
ALTER TABLE "user_profile" ALTER COLUMN "userHost" TYPE character varying(512);
|
||
|
ALTER TABLE "user_publickey" ALTER COLUMN "keyId" TYPE character varying(512);
|
||
|
ALTER TABLE "emoji" ALTER COLUMN "host" TYPE character varying(512);
|
||
|
ALTER TABLE "note" ALTER COLUMN "userHost" TYPE character varying(512);
|
||
|
ALTER TABLE "note" ALTER COLUMN "replyUserHost" TYPE character varying(512);
|
||
|
ALTER TABLE "note" ALTER COLUMN "renoteUserHost" TYPE character varying(512);
|
||
|
ALTER TABLE "instance" ALTER COLUMN "host" TYPE character varying(512);
|
||
|
ALTER TABLE "instance" ALTER COLUMN "iconUrl" TYPE character varying(4096);
|
||
|
ALTER TABLE "instance" ALTER COLUMN "faviconUrl" TYPE character varying(4096);
|
||
|
ALTER TABLE "poll" ALTER COLUMN "userHost" TYPE character varying(512);
|
||
|
ALTER TABLE "abuse_user_report" ALTER COLUMN "targetUserHost" TYPE character varying(512);
|
||
|
ALTER TABLE "abuse_user_report" ALTER COLUMN "reporterHost" TYPE character varying(512);
|
||
|
ALTER TABLE "following" ALTER COLUMN "followeeHost" TYPE character varying(512);
|
||
|
ALTER TABLE "following" ALTER COLUMN "followerHost" TYPE character varying(512);
|
||
|
ALTER TABLE "follow_request" ALTER COLUMN "followeeHost" TYPE character varying(512);
|
||
|
ALTER TABLE "follow_request" ALTER COLUMN "followerHost" TYPE character varying(512);
|
||
|
|
||
|
DROP TABLE ad CASCADE;
|
||
|
|
||
|
ALTER TABLE announcement DROP COLUMN "display" CASCADE;
|
||
|
ALTER TABLE announcement DROP COLUMN "needConfirmationToRead" CASCADE;
|
||
|
ALTER TABLE announcement DROP COLUMN "isActive" CASCADE;
|
||
|
ALTER TABLE announcement DROP COLUMN "forExistingUsers" CASCADE;
|
||
|
ALTER TABLE announcement DROP COLUMN "userId" CASCADE;
|
||
|
ALTER TABLE announcement DROP COLUMN icon CASCADE;
|
||
|
ALTER TABLE announcement DROP COLUMN silence CASCADE;
|
||
|
ALTER TABLE announcement ADD COLUMN "showPopup" BOOLEAN DEFAULT false NOT NULL;
|
||
|
ALTER TABLE announcement ADD COLUMN "isGoodNews" BOOLEAN DEFAULT false NOT NULL;
|
||
|
|
||
|
ALTER TABLE antenna ADD COLUMN "userGroupJoiningId" CHARACTER VARYING(32);
|
||
|
ALTER TABLE antenna ADD COLUMN instances JSONB DEFAULT '[]'::jsonb NOT NULL;
|
||
|
ALTER TABLE antenna DROP COLUMN "lastUsedAt" CASCADE;
|
||
|
ALTER TABLE antenna DROP COLUMN "isActive" CASCADE;
|
||
|
ALTER TABLE antenna DROP COLUMN "localOnly" CASCADE;
|
||
|
|
||
|
CREATE TABLE attestation_challenge (
|
||
|
id character varying(32) NOT NULL,
|
||
|
"userId" character varying(32) NOT NULL,
|
||
|
challenge character varying(64) NOT NULL,
|
||
|
"createdAt" timestamp with time zone NOT NULL,
|
||
|
"registrationChallenge" boolean DEFAULT false NOT NULL
|
||
|
);
|
||
|
|
||
|
DROP TABLE avatar_decoration CASCADE;
|
||
|
DROP TABLE bubble_game_record CASCADE;
|
||
|
|
||
|
ALTER TABLE channel DROP COLUMN "pinnedNoteIds" CASCADE; -- TODO: check to see if this needs to be migrated to channel_note_pining table
|
||
|
ALTER TABLE channel DROP COLUMN color CASCADE;
|
||
|
ALTER TABLE channel DROP COLUMN "isArchived" CASCADE;
|
||
|
ALTER TABLE channel DROP COLUMN "isSensitive" CASCADE;
|
||
|
ALTER TABLE channel DROP COLUMN "allowRenoteToExternal" CASCADE;
|
||
|
|
||
|
DROP TABLE channel_favorite CASCADE;
|
||
|
|
||
|
ALTER TABLE clip DROP COLUMN "lastClippedAt" CASCADE;
|
||
|
|
||
|
DROP TABLE clip_favorite CASCADE;
|
||
|
|
||
|
ALTER TABLE drive_file DROP COLUMN "maybeSensitive" CASCADE;
|
||
|
ALTER TABLE drive_file DROP COLUMN "maybePorn" CASCADE;
|
||
|
|
||
|
ALTER TABLE emoji DROP COLUMN "localOnly" CASCADE;
|
||
|
ALTER TABLE emoji DROP COLUMN "isSensitive" CASCADE;
|
||
|
ALTER TABLE emoji DROP COLUMN "roleIdsThatCanBeUsedThisEmojiAsReaction" CASCADE;
|
||
|
ALTER TABLE emoji ADD COLUMN width INTEGER;
|
||
|
ALTER TABLE emoji ADD COLUMN height INTEGER;
|
||
|
|
||
|
DROP TABLE flash CASCADE;
|
||
|
DROP TABLE flash_like CASCADE;
|
||
|
|
||
|
ALTER TABLE follow_request DROP COLUMN "withReplies" CASCADE;
|
||
|
|
||
|
ALTER TABLE following DROP COLUMN notify CASCADE;
|
||
|
ALTER TABLE following DROP COLUMN "withReplies" CASCADE;
|
||
|
ALTER TABLE following DROP COLUMN "isFollowerHibernated" CASCADE;
|
||
|
|
||
|
CREATE TABLE html_note_cache_entry (
|
||
|
"noteId" character varying(32) NOT NULL,
|
||
|
"updatedAt" timestamp with time zone,
|
||
|
content text
|
||
|
);
|
||
|
|
||
|
CREATE TABLE html_user_cache_entry (
|
||
|
"userId" character varying(32) NOT NULL,
|
||
|
"updatedAt" timestamp with time zone,
|
||
|
bio text,
|
||
|
fields jsonb DEFAULT '[]'::jsonb NOT NULL
|
||
|
);
|
||
|
|
||
|
ALTER TABLE instance RENAME COLUMN "firstRetrievedAt" TO "caughtAt";
|
||
|
ALTER TABLE instance ADD COLUMN "latestRequestSentAt" TIMESTAMP WITH TIME ZONE; -- TODO: may want to set to now() or something
|
||
|
ALTER TABLE instance ADD COLUMN "latestStatus" INTEGER;
|
||
|
ALTER TABLE instance DROP COLUMN "isNSFW" CASCADE;
|
||
|
ALTER TABLE instance DROP COLUMN "moderationNote" CASCADE;
|
||
|
|
||
|
ALTER TABLE instance ADD COLUMN "lastCommunicatedAt" TIMESTAMP WITH TIME ZONE;
|
||
|
UPDATE instance SET "lastCommunicatedAt" = COALESCE("latestRequestReceivedAt", NOW());
|
||
|
ALTER TABLE instance ALTER COLUMN "lastCommunicatedAt" SET NOT NULL;
|
||
|
|
||
|
ALTER TABLE meta ALTER COLUMN name TYPE character varying(128);
|
||
|
ALTER TABLE meta ALTER COLUMN "maintainerName" TYPE character varying(128);
|
||
|
ALTER TABLE meta ALTER COLUMN "maintainerEmail" TYPE character varying(128);
|
||
|
ALTER TABLE meta ALTER COLUMN "disableRegistration" SET DEFAULT false;
|
||
|
ALTER TABLE meta ALTER COLUMN langs TYPE character varying(64)[];
|
||
|
ALTER TABLE meta ALTER COLUMN "hiddenTags" TYPE character varying(256)[];
|
||
|
ALTER TABLE meta ALTER COLUMN "blockedHosts" TYPE character varying(256)[];
|
||
|
ALTER TABLE meta ALTER COLUMN "mascotImageUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "mascotImageUrl" SET DEFAULT '/static-assets/badges/info.png';
|
||
|
ALTER TABLE meta ADD COLUMN "errorImageUrl" character varying(512) DEFAULT '/static-assets/badges/error.png';
|
||
|
ALTER TABLE meta ALTER COLUMN "bannerUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "iconUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "recaptchaSiteKey" TYPE character varying(64);
|
||
|
ALTER TABLE meta ALTER COLUMN "recaptchaSecretKey" TYPE character varying(64);
|
||
|
ALTER TABLE meta ALTER COLUMN "summalyProxy" TYPE character varying(128);
|
||
|
ALTER TABLE meta ALTER COLUMN email TYPE character varying(128);
|
||
|
ALTER TABLE meta ALTER COLUMN "smtpHost" TYPE character varying(128);
|
||
|
ALTER TABLE meta ADD COLUMN "enableGithubIntegration" boolean DEFAULT false NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "githubClientId" character varying(128);
|
||
|
ALTER TABLE meta ADD COLUMN "githubClientSecret" character varying(128);
|
||
|
ALTER TABLE meta ADD COLUMN "enableDiscordIntegration" boolean DEFAULT false NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "discordClientId" character varying(128);
|
||
|
ALTER TABLE meta ADD COLUMN "discordClientSecret" character varying(128);
|
||
|
ALTER TABLE meta ALTER COLUMN "pinnedUsers" TYPE character varying(256)[];
|
||
|
ALTER TABLE meta ALTER COLUMN "termsOfServiceUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta RENAME COLUMN "termsOfServiceUrl" TO "ToSUrl";
|
||
|
ALTER TABLE meta ALTER COLUMN "repositoryUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "repositoryUrl" SET DEFAULT 'https://iceshrimp.dev/iceshrimp/iceshrimp';
|
||
|
ALTER TABLE meta ALTER COLUMN "repositoryUrl" SET NOT NULL;
|
||
|
ALTER TABLE meta ALTER COLUMN "feedbackUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "feedbackUrl" SET DEFAULT 'https://iceshrimp.dev/iceshrimp/iceshrimp/issues/new';
|
||
|
ALTER TABLE meta ALTER COLUMN "objectStorageBucket" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "objectStoragePrefix" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "objectStorageBaseUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "objectStorageEndpoint" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "objectStorageRegion" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "objectStorageAccessKey" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "objectStorageSecretKey" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "hcaptchaSiteKey" TYPE character varying(64);
|
||
|
ALTER TABLE meta ALTER COLUMN "hcaptchaSecretKey" TYPE character varying(64);
|
||
|
ALTER TABLE meta ADD COLUMN "pinnedPages" character varying(512)[] DEFAULT '{/featured,/channels,/explore,/pages,/about-iceshrimp}'::character varying[] NOT NULL;
|
||
|
ALTER TABLE meta ALTER COLUMN "backgroundImageUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta ALTER COLUMN "logoImageUrl" TYPE character varying(512);
|
||
|
ALTER TABLE meta ADD COLUMN "pinnedClipId" character varying(32);
|
||
|
ALTER TABLE meta ADD COLUMN "allowedHosts" character varying(256)[] DEFAULT '{}'::character varying[] NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "secureMode" boolean DEFAULT true NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "privateMode" boolean DEFAULT false NOT NULL;
|
||
|
ALTER TABLE meta ALTER COLUMN "deeplAuthKey" TYPE character varying(128);
|
||
|
ALTER TABLE meta ALTER COLUMN "themeColor" TYPE character varying(512);
|
||
|
ALTER TABLE meta DROP COLUMN "setSensitiveFlagAutomatically" CASCADE;
|
||
|
ALTER TABLE meta ADD COLUMN "customMOTD" character varying(256)[] DEFAULT '{}'::character varying[] NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "customSplashIcons" character varying(256)[] DEFAULT '{}'::character varying[] NOT NULL;
|
||
|
ALTER TABLE meta DROP COLUMN "enableSensitiveMediaDetectionForVideos" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableTurnstile" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "turnstileSiteKey" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "turnstileSecretKey" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN policies CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "sensitiveWords" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableChartsForRemoteUser" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableChartsForFederatedInstances" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "serverRules" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "preservedUsernames" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "serverErrorImageUrl" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "notFoundImageUrl" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "infoImageUrl" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "cacheRemoteSensitiveFiles" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "app192IconUrl" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "app512IconUrl" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "manifestJsonOverride" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "shortName" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableAchievements" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "impressumUrl" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "privacyPolicyUrl" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "perLocalUserUserTimelineCacheMax" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "perRemoteUserUserTimelineCacheMax" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "perUserHomeTimelineCacheMax" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "perUserListTimelineCacheMax" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "notesPerOneAd" CASCADE;
|
||
|
ALTER TABLE meta ALTER COLUMN "silencedHosts" TYPE character varying(256)[];
|
||
|
ALTER TABLE meta DROP COLUMN "approvalRequiredForSignup" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableBotTrending" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableFanoutTimeline" CASCADE;
|
||
|
ALTER TABLE meta RENAME COLUMN "defaultLike" TO "defaultReaction";
|
||
|
ALTER TABLE meta ALTER COLUMN "defaultReaction" TYPE character varying(256);
|
||
|
ALTER TABLE meta ALTER COLUMN "defaultReaction" SET NOT NULL;
|
||
|
ALTER TABLE meta ALTER COLUMN "defaultReaction" SET DEFAULT '⭐';
|
||
|
ALTER TABLE meta DROP COLUMN "enableFanoutTimelineDbFallback" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "verifymailAuthKey" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableVerifymailApi" CASCADE;
|
||
|
ALTER TABLE meta RENAME COLUMN "bubbleInstances" TO "recommendedInstances";
|
||
|
ALTER TABLE meta DROP COLUMN "bannedEmailDomains" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "truemailInstance" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "truemailAuthKey" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableTruemailApi" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "enableMcaptcha" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "mcaptchaSitekey" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "mcaptchaSecretKey" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "mcaptchaInstanceUrl" CASCADE;
|
||
|
ALTER TABLE meta RENAME COLUMN "donationUrl" TO "donationLink";
|
||
|
ALTER TABLE meta ALTER COLUMN "donationLink" TYPE character varying(256);
|
||
|
ALTER TABLE meta DROP COLUMN "deeplFreeMode" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "deeplFreeInstance" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "prohibitedWords" CASCADE;
|
||
|
ALTER TABLE meta ADD COLUMN "libreTranslateApiUrl" character varying(512);
|
||
|
ALTER TABLE meta ADD COLUMN "libreTranslateApiKey" character varying(128);
|
||
|
ALTER TABLE meta ADD COLUMN "experimentalFeatures" jsonb DEFAULT '{}'::jsonb NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "autofollowedAccount" character varying(128);
|
||
|
ALTER TABLE meta DROP COLUMN "enableServiceWorker" CASCADE;
|
||
|
ALTER TABLE meta DROP COLUMN "proxyAccountId" CASCADE;
|
||
|
|
||
|
-- DIFFERENCE: sharkey swPublicKey and swPrivateKey are nullable.
|
||
|
ALTER TABLE meta ALTER COLUMN "swPublicKey" TYPE character varying(128);
|
||
|
ALTER TABLE meta ALTER COLUMN "swPrivateKey" TYPE character varying(128);
|
||
|
|
||
|
ALTER TABLE meta ADD COLUMN "localDriveCapacityMb" integer DEFAULT 1024 NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "remoteDriveCapacityMb" integer DEFAULT 32 NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "disableLocalTimeline" boolean DEFAULT false NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "disableGlobalTimeline" boolean DEFAULT false NOT NULL;
|
||
|
ALTER TABLE meta ADD COLUMN "disableRecommendedTimeline" boolean DEFAULT true NOT NULL;
|
||
|
|
||
|
ALTER TABLE note ADD COLUMN score integer DEFAULT 0 NOT NULL;
|
||
|
ALTER TABLE note DROP COLUMN "reactionAcceptance" CASCADE;
|
||
|
ALTER TABLE note DROP COLUMN "clippedCount" CASCADE;
|
||
|
ALTER TABLE note DROP COLUMN "reactionAndUserPairCache" CASCADE;
|
||
|
|
||
|
ALTER TABLE note_edit RENAME COLUMN "newText" TO text;
|
||
|
ALTER TABLE note_edit DROP COLUMN "oldText" CASCADE;
|
||
|
ALTER TABLE note_edit DROP COLUMN "oldDate" CASCADE;
|
||
|
|
||
|
CREATE TABLE notification (
|
||
|
id character varying(32) NOT NULL,
|
||
|
"createdAt" timestamp with time zone NOT NULL,
|
||
|
"notifieeId" character varying(32) NOT NULL,
|
||
|
"notifierId" character varying(32),
|
||
|
"isRead" boolean DEFAULT false NOT NULL,
|
||
|
"noteId" character varying(32),
|
||
|
reaction character varying(128),
|
||
|
choice integer,
|
||
|
"followRequestId" character varying(32),
|
||
|
type notification_type_enum NOT NULL,
|
||
|
"userGroupInvitationId" character varying(32),
|
||
|
"customBody" character varying(2048),
|
||
|
"customHeader" character varying(256),
|
||
|
"customIcon" character varying(1024),
|
||
|
"appAccessTokenId" character varying(32)
|
||
|
);
|
||
|
|
||
|
|
||
|
CREATE TABLE oauth_app (
|
||
|
id character varying(32) NOT NULL,
|
||
|
"createdAt" timestamp with time zone NOT NULL,
|
||
|
"clientId" character varying(64) NOT NULL,
|
||
|
"clientSecret" character varying(64) NOT NULL,
|
||
|
name character varying(128) NOT NULL,
|
||
|
website character varying(256),
|
||
|
scopes character varying(64)[] NOT NULL,
|
||
|
"redirectUris" character varying(512)[] NOT NULL
|
||
|
);
|
||
|
|
||
|
|
||
|
CREATE TABLE oauth_token (
|
||
|
id character varying(32) NOT NULL,
|
||
|
"createdAt" timestamp with time zone NOT NULL,
|
||
|
"appId" character varying(32) NOT NULL,
|
||
|
"userId" character varying(32) NOT NULL,
|
||
|
code character varying(64) NOT NULL,
|
||
|
token character varying(64) NOT NULL,
|
||
|
active boolean NOT NULL,
|
||
|
scopes character varying(64)[] NOT NULL,
|
||
|
"redirectUri" character varying(512) NOT NULL
|
||
|
);
|
||
|
|
||
|
ALTER TABLE page ADD COLUMN "isPublic" boolean NOT NULL;
|
||
|
|
||
|
ALTER TABLE registration_ticket DROP COLUMN "expiresAt" CASCADE;
|
||
|
ALTER TABLE registration_ticket DROP COLUMN "usedAt" CASCADE;
|
||
|
ALTER TABLE registration_ticket DROP COLUMN "pendingUserId" CASCADE;
|
||
|
ALTER TABLE registration_ticket DROP COLUMN "createdById" CASCADE;
|
||
|
ALTER TABLE registration_ticket DROP COLUMN "usedById" CASCADE;
|
||
|
|
||
|
DROP TABLE retention_aggregation CASCADE;
|
||
|
DROP TABLE reversi_game CASCADE;
|
||
|
DROP TABLE reversi_matching CASCADE;
|
||
|
DROP TABLE role CASCADE;
|
||
|
DROP TABLE role_assignment CASCADE;
|
||
|
|
||
|
ALTER TABLE "user" RENAME COLUMN "isRoot" TO "isAdmin";
|
||
|
ALTER TABLE "user" ADD COLUMN "isModerator" boolean DEFAULT false NOT NULL;
|
||
|
ALTER TABLE "user" ADD COLUMN "driveCapacityOverrideMb" integer;
|
||
|
ALTER TABLE "user" DROP COLUMN "movedAt" CASCADE;
|
||
|
ALTER TABLE "user" DROP COLUMN "isHibernated" CASCADE;
|
||
|
ALTER TABLE "user" DROP COLUMN "backgroundId" CASCADE;
|
||
|
ALTER TABLE "user" DROP COLUMN "backgroundUrl" CASCADE;
|
||
|
ALTER TABLE "user" DROP COLUMN "backgroundBlurhash" CASCADE;
|
||
|
ALTER TABLE "user" DROP COLUMN approved CASCADE;
|
||
|
ALTER TABLE "user" DROP COLUMN "signupReason" CASCADE;
|
||
|
ALTER TABLE "user" DROP COLUMN "avatarDecorations" CASCADE;
|
||
|
ALTER TABLE "user" DROP COLUMN noindex CASCADE;
|
||
|
|
||
|
ALTER TABLE user_list ADD COLUMN "hideFromHomeTl" boolean DEFAULT false NOT NULL;
|
||
|
ALTER TABLE user_list DROP COLUMN "isPublic" CASCADE;
|
||
|
|
||
|
DROP TABLE user_list_favorite CASCADE;
|
||
|
|
||
|
ALTER TABLE user_list_membership RENAME TO user_list_joining;
|
||
|
ALTER TABLE user_list_joining DROP COLUMN "withReplies" CASCADE;
|
||
|
ALTER TABLE user_list_joining DROP COLUMN "userListUserId" CASCADE;
|
||
|
|
||
|
DROP TABLE user_memo CASCADE;
|
||
|
|
||
|
ALTER TABLE user_pending DROP COLUMN reason CASCADE;
|
||
|
|
||
|
ALTER TABLE user_profile ADD COLUMN integrations jsonb DEFAULT '{}'::jsonb NOT NULL;
|
||
|
ALTER TABLE user_profile ADD COLUMN "mutingNotificationTypes" user_profile_mutingnotificationtypes_enum[] DEFAULT '{}'::user_profile_mutingnotificationtypes_enum[] NOT NULL;
|
||
|
ALTER TABLE user_profile ALTER COLUMN "emailNotificationTypes" SET DEFAULT '["follow", "receiveFollowRequest", "groupInvited"]'::jsonb;
|
||
|
ALTER TABLE user_profile ALTER COLUMN "publicReactions" SET DEFAULT false;
|
||
|
ALTER TABLE user_profile ADD COLUMN mentions jsonb DEFAULT '[]'::jsonb NOT NULL;
|
||
|
ALTER TABLE user_profile DROP COLUMN "autoSensitive" CASCADE;
|
||
|
ALTER TABLE user_profile DROP COLUMN achievements CASCADE;
|
||
|
ALTER TABLE user_profile DROP COLUMN "loggedInDates" CASCADE;
|
||
|
ALTER TABLE user_profile DROP COLUMN "twoFactorBackupSecret" CASCADE;
|
||
|
ALTER TABLE user_profile DROP COLUMN listenbrainz CASCADE;
|
||
|
ALTER TABLE user_profile DROP COLUMN "verifiedLinks" CASCADE;
|
||
|
ALTER TABLE user_profile DROP COLUMN "notificationRecieveConfig" CASCADE;
|
||
|
ALTER TABLE user_profile DROP COLUMN "hardMutedWords" CASCADE;
|
||
|
ALTER TABLE user_profile RENAME COLUMN "followingVisibility" TO "ffVisibility";
|
||
|
|
||
|
ALTER TABLE user_security_key ALTER COLUMN "lastUsed" DROP DEFAULT;
|
||
|
ALTER TABLE user_security_key DROP COLUMN counter CASCADE;
|
||
|
ALTER TABLE user_security_key DROP COLUMN "credentialDeviceType" CASCADE;
|
||
|
ALTER TABLE user_security_key DROP COLUMN "credentialBackedUp" CASCADE;
|
||
|
ALTER TABLE user_security_key DROP COLUMN transports CASCADE;
|
||
|
|
||
|
-- primary keys
|
||
|
ALTER TABLE ONLY attestation_challenge ADD CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY (id, "userId");
|
||
|
ALTER TABLE ONLY html_note_cache_entry ADD CONSTRAINT "PK_6ef86ec901b2017cbe82d3a8286" PRIMARY KEY ("noteId");
|
||
|
ALTER TABLE ONLY html_user_cache_entry ADD CONSTRAINT "PK_920b9474e3c9cae3f3c37c057e1" PRIMARY KEY ("userId");
|
||
|
ALTER TABLE ONLY notification ADD CONSTRAINT "PK_705b6c7cdf9b2c2ff7ac7872cb7" PRIMARY KEY (id);
|
||
|
ALTER TABLE ONLY oauth_app ADD CONSTRAINT "PK_3256b97c0a3ee2d67240805dca4" PRIMARY KEY (id);
|
||
|
ALTER TABLE ONLY oauth_token ADD CONSTRAINT "PK_7e6a25a3cc4395d1658f5b89c73" PRIMARY KEY (id);
|
||
|
|
||
|
-- indices
|
||
|
CREATE INDEX "IDX_01f4581f114e0ebd2bbb876f0b" ON note_reaction USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_02878d441ceae15ce060b73daf" ON drive_folder USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_048a757923ed8b157e9895da53" ON app USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_080ab397c379af09b9d2169e5b" ON notification USING btree ("isRead");
|
||
|
CREATE INDEX "IDX_0fb627e1c2f753262a74f0562d" ON poll_vote USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_118ec703e596086fc4515acb39" ON announcement USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_11e71f2511589dcc8a4d3214f9" ON channel_following USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_25dfc71b0369b003a4cd434d0b" ON note USING btree ("attachedFileTypes");
|
||
|
CREATE INDEX "IDX_2cbeb4b389444bcf4379ef4273" ON oauth_token USING btree (token);
|
||
|
CREATE INDEX "IDX_2cd3b2a6b4cf0b910b260afe08" ON instance USING btree ("caughtAt");
|
||
|
CREATE INDEX "IDX_33f33cc8ef29d805a97ff4628b" ON notification USING btree (type);
|
||
|
CREATE INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71" ON notification USING btree ("notifierId");
|
||
|
CREATE INDEX "IDX_3c601b70a1066d2c8b517094cb" ON notification USING btree ("notifieeId");
|
||
|
CREATE INDEX "IDX_47efb914aed1f72dd39a306c7b" ON attestation_challenge USING btree (challenge);
|
||
|
CREATE INDEX "IDX_51c063b6a133a9cb87145450f5" ON note USING btree ("fileIds");
|
||
|
CREATE INDEX "IDX_54ebcb6d27222913b908d56fd8" ON note USING btree (mentions);
|
||
|
CREATE INDEX "IDX_582f8fab771a9040a12961f3e7" ON following USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_605472305f26818cc93d1baaa7" ON user_list_joining USING btree ("userListId");
|
||
|
CREATE UNIQUE INDEX "IDX_65b61f406c811241e1315a2f82" ON oauth_app USING btree ("clientId");
|
||
|
CREATE INDEX "IDX_71cb7b435b7c0d4843317e7e16" ON channel USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_796a8c03959361f97dc2be1d5c" ON note USING btree ("visibleUserIds");
|
||
|
CREATE INDEX "IDX_88937d94d7443d9a99a76fa5c0" ON note USING btree (tags);
|
||
|
CREATE INDEX "IDX_8977c6037a7bc2cb0c84b6d4db" ON "user" USING btree ("isSuspended");
|
||
|
CREATE INDEX "IDX_8f1a239bd077c8864a20c62c2c" ON gallery_post USING btree ("createdAt");
|
||
|
CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON user_list_joining USING btree ("userId", "userListId");
|
||
|
CREATE INDEX "IDX_b11a5e627c41d4dc3170f1d370" ON notification USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_b9a354f7941c1e779f3b33aea6" ON blocking USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_c8dfad3b72196dd1d6b5db168a" ON drive_file USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_d1259a2c2b7bb413ff449e8711" ON renote_muting USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_d844bfc6f3f523a05189076efa" ON user_list_joining USING btree ("userId");
|
||
|
CREATE INDEX "IDX_db2098070b2b5a523c58181f74" ON abuse_user_report USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_dc5fe174a8b59025055f0ec136" ON oauth_token USING btree (code);
|
||
|
CREATE INDEX "IDX_e11e649824a45d8ed01d597fd9" ON "user" USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c" ON notification USING btree ("appAccessTokenId");
|
||
|
CREATE INDEX "IDX_e7c0567f5261063592f022e9b5" ON note USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_f1a461a618fa1755692d0e0d59" ON attestation_challenge USING btree ("userId");
|
||
|
CREATE INDEX "IDX_f86d57fbca33c7a4e6897490cc" ON muting USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_fbb4297c927a9b85e9cefa2eb1" ON page USING btree ("createdAt");
|
||
|
CREATE INDEX "IDX_note_createdAt_userId" ON note USING btree ("createdAt", "userId");
|
||
|
CREATE INDEX "IDX_note_id_userHost" ON note USING btree (id, "userHost");
|
||
|
CREATE INDEX "IDX_note_url" ON note USING btree (url);
|
||
|
CREATE INDEX "IDX_note_userId_id" ON note USING btree ("userId", id);
|
||
|
CREATE INDEX note_text_fts_idx ON note USING gin (text gin_trgm_ops);
|
||
|
|
||
|
DROP INDEX "IDX_NOTE_FILE_IDS" CASCADE; -- the iceshrimp index is a btree, this one is gin, so can't just rename!
|
||
|
DROP INDEX "IDX_de22cd2b445eee31ae51cdbe99" CASCADE; -- ON public.user_profile USING btree (substr((birthday)::text, 6, 5));
|
||
|
DROP INDEX "IDX_f7b9d338207e40e768e4a5265a" CASCADE; -- ON public.instance USING btree ("caughtAt");
|
||
|
|
||
|
-- foreign keys
|
||
|
ALTER TABLE ONLY notification ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY notification ADD CONSTRAINT "FK_3c601b70a1066d2c8b517094cb9" FOREIGN KEY ("notifieeId") REFERENCES "user"(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY oauth_token ADD CONSTRAINT "FK_6d3ef28ea647b1449ba79690874" FOREIGN KEY ("appId") REFERENCES oauth_app(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY html_note_cache_entry ADD CONSTRAINT "FK_6ef86ec901b2017cbe82d3a8286" FOREIGN KEY ("noteId") REFERENCES note(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY notification ADD CONSTRAINT "FK_769cb6b73a1efe22ddf733ac453" FOREIGN KEY ("noteId") REFERENCES note(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY notification ADD CONSTRAINT "FK_8fe87814e978053a53b1beb7e98" FOREIGN KEY ("userGroupInvitationId") REFERENCES user_group_invitation(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY html_user_cache_entry ADD CONSTRAINT "FK_920b9474e3c9cae3f3c37c057e1" FOREIGN KEY ("userId") REFERENCES "user"(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY notification ADD CONSTRAINT "FK_bd7fab507621e635b32cd31892c" FOREIGN KEY ("followRequestId") REFERENCES follow_request(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY antenna ADD CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb" FOREIGN KEY ("userGroupJoiningId") REFERENCES user_group_joining(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY notification ADD CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9" FOREIGN KEY ("appAccessTokenId") REFERENCES access_token(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY attestation_challenge ADD CONSTRAINT "FK_f1a461a618fa1755692d0e0d592" FOREIGN KEY ("userId") REFERENCES "user"(id) ON DELETE CASCADE;
|
||
|
ALTER TABLE ONLY oauth_token ADD CONSTRAINT "FK_f6b4b1ac66b753feab5d831ba04" FOREIGN KEY ("userId") REFERENCES "user"(id) ON DELETE CASCADE;
|
||
|
|
||
|
-- comments
|
||
|
COMMENT ON COLUMN abuse_user_report."createdAt" IS 'The created date of the AbuseUserReport.';
|
||
|
COMMENT ON COLUMN access_token."createdAt" IS 'The created date of the AccessToken.';
|
||
|
COMMENT ON COLUMN announcement."createdAt" IS 'The created date of the Announcement.';
|
||
|
COMMENT ON COLUMN announcement_read."createdAt" IS 'The created date of the AnnouncementRead.';
|
||
|
COMMENT ON COLUMN antenna."createdAt" IS 'The created date of the Antenna.';
|
||
|
COMMENT ON COLUMN app."createdAt" IS 'The created date of the App.';
|
||
|
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.';
|
||
|
COMMENT ON COLUMN auth_session."createdAt" IS 'The created date of the AuthSession.';
|
||
|
COMMENT ON COLUMN blocking."createdAt" IS 'The created date of the Blocking.';
|
||
|
COMMENT ON COLUMN channel."createdAt" IS 'The created date of the Channel.';
|
||
|
COMMENT ON COLUMN channel_following."createdAt" IS 'The created date of the ChannelFollowing.';
|
||
|
COMMENT ON COLUMN clip."createdAt" IS 'The created date of the Clip.';
|
||
|
COMMENT ON COLUMN drive_file."createdAt" IS 'The created date of the DriveFile.';
|
||
|
COMMENT ON COLUMN drive_folder."createdAt" IS 'The created date of the DriveFolder.';
|
||
|
COMMENT ON COLUMN emoji.width IS 'Image width';
|
||
|
COMMENT ON COLUMN emoji.height IS 'Image height';
|
||
|
COMMENT ON COLUMN follow_request."createdAt" IS 'The created date of the FollowRequest.';
|
||
|
COMMENT ON COLUMN following."createdAt" IS 'The created date of the Following.';
|
||
|
COMMENT ON COLUMN gallery_post."createdAt" IS 'The created date of the GalleryPost.';
|
||
|
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 moderation_log."createdAt" IS 'The created date of the ModerationLog.';
|
||
|
COMMENT ON COLUMN muting."createdAt" IS 'The created date of the Muting.';
|
||
|
COMMENT ON COLUMN note."createdAt" IS 'The created date of the Note.';
|
||
|
COMMENT ON COLUMN note_favorite."createdAt" IS 'The created date of the NoteFavorite.';
|
||
|
COMMENT ON COLUMN note_reaction."createdAt" IS 'The created date of the NoteReaction.';
|
||
|
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 was read.';
|
||
|
COMMENT ON COLUMN notification.type IS 'The type of the Notification.';
|
||
|
COMMENT ON COLUMN oauth_app."createdAt" IS 'The created date of the OAuth application';
|
||
|
COMMENT ON COLUMN oauth_app."clientId" IS 'The client id of the OAuth application';
|
||
|
COMMENT ON COLUMN oauth_app."clientSecret" IS 'The client secret of the OAuth application';
|
||
|
COMMENT ON COLUMN oauth_app.name IS 'The name of the OAuth application';
|
||
|
COMMENT ON COLUMN oauth_app.website IS 'The website of the OAuth application';
|
||
|
COMMENT ON COLUMN oauth_app.scopes IS 'The scopes requested by the OAuth application';
|
||
|
COMMENT ON COLUMN oauth_app."redirectUris" IS 'The redirect URIs of the OAuth application';
|
||
|
COMMENT ON COLUMN oauth_token."createdAt" IS 'The created date of the OAuth token';
|
||
|
COMMENT ON COLUMN oauth_token.code IS 'The auth code for the OAuth token';
|
||
|
COMMENT ON COLUMN oauth_token.token IS 'The OAuth token';
|
||
|
COMMENT ON COLUMN oauth_token.active IS 'Whether or not the token has been activated';
|
||
|
COMMENT ON COLUMN oauth_token.scopes IS 'The scopes requested by the OAuth token';
|
||
|
COMMENT ON COLUMN oauth_token."redirectUri" IS 'The redirect URI of the OAuth token';
|
||
|
COMMENT ON COLUMN page."createdAt" IS 'The created date of the Page.';
|
||
|
COMMENT ON COLUMN poll_vote."createdAt" IS 'The created date of the PollVote.';
|
||
|
COMMENT ON COLUMN promo_read."createdAt" IS 'The created date of the PromoRead.';
|
||
|
COMMENT ON COLUMN registry_item."createdAt" IS 'The created date of the RegistryItem.';
|
||
|
COMMENT ON COLUMN renote_muting."createdAt" IS 'The created date of the Muting.';
|
||
|
COMMENT ON COLUMN signin."createdAt" IS 'The created date of the Signin.';
|
||
|
COMMENT ON COLUMN "user"."createdAt" IS 'The created date of the User.';
|
||
|
COMMENT ON COLUMN "user"."isSilenced" IS 'Whether the User is silenced.';
|
||
|
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"."driveCapacityOverrideMb" IS 'Overrides user drive capacity limit';
|
||
|
COMMENT ON COLUMN "user"."speakAsCat" IS 'Whether to speak as a cat if isCat.';
|
||
|
COMMENT ON COLUMN "user"."avatarUrl" IS 'The URL of the avatar DriveFile';
|
||
|
COMMENT ON COLUMN "user"."avatarBlurhash" IS 'The blurhash of the avatar DriveFile';
|
||
|
COMMENT ON COLUMN "user"."bannerUrl" IS 'The URL of the banner DriveFile';
|
||
|
COMMENT ON COLUMN "user"."bannerBlurhash" IS 'The blurhash of the banner DriveFile';
|
||
|
COMMENT ON COLUMN user_list."createdAt" IS 'The created date of the UserList.';
|
||
|
COMMENT ON COLUMN user_list."hideFromHomeTl" IS 'Whether posts from list members should be hidden from the home timeline.';
|
||
|
COMMENT ON COLUMN user_list_joining."createdAt" IS 'The created date of the UserListJoining.';
|
||
|
COMMENT ON COLUMN user_note_pining."createdAt" IS 'The created date of the UserNotePinings.';
|
||
|
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 webhook."createdAt" IS 'The created date of the Antenna.';
|
||
|
|
||
|
-- lie to typeorm
|
||
|
TRUNCATE migrations;
|
||
|
COPY migrations (id, "timestamp", name) FROM stdin;
|
||
|
1 1000000000000 Init1000000000000
|
||
|
2 1556348509290 Pages1556348509290
|
||
|
3 1556746559567 UserProfile1556746559567
|
||
|
4 1557476068003 PinnedUsers1557476068003
|
||
|
5 1557761316509 AddSomeUrls1557761316509
|
||
|
6 1557932705754 ObjectStorageSetting1557932705754
|
||
|
7 1558072954435 PageLike1558072954435
|
||
|
8 1558103093633 UserGroup1558103093633
|
||
|
9 1558257926829 UserGroupInvite1558257926829
|
||
|
10 1558266512381 UserListJoining1558266512381
|
||
|
11 1561706992953 webauthn1561706992953
|
||
|
12 1561873850023 ChartIndexes1561873850023
|
||
|
13 1562422242907 PasswordLessLogin1562422242907
|
||
|
14 1562444565093 PinnedPage1562444565093
|
||
|
15 1562448332510 PageTitleHideOption1562448332510
|
||
|
16 1562869971568 ModerationLog1562869971568
|
||
|
17 1563757595828 UsedUsername1563757595828
|
||
|
18 1565634203341 room1565634203341
|
||
|
19 1571220798684 CustomEmojiCategory1571220798684
|
||
|
20 1572760203493 nodeinfo1572760203493
|
||
|
21 1576269851876 TalkFederationId1576269851876
|
||
|
22 1576869585998 ProxyRemoteFiles1576869585998
|
||
|
23 1579267006611 v121579267006611
|
||
|
24 1579270193251 v1221579270193251
|
||
|
25 1579282808087 v1231579282808087
|
||
|
26 1579544426412 v1241579544426412
|
||
|
27 1579977526288 v1251579977526288
|
||
|
28 1579993013959 v1261579993013959
|
||
|
29 1580069531114 v1271580069531114
|
||
|
30 1580148575182 v1281580148575182
|
||
|
31 1580154400017 v1291580154400017
|
||
|
32 1580276619901 v12101580276619901
|
||
|
33 1580331224276 v12111580331224276
|
||
|
34 1580508795118 v12121580508795118
|
||
|
35 1580543501339 v12131580543501339
|
||
|
36 1580864313253 v12141580864313253
|
||
|
37 1581526429287 userGroupInvitation1581526429287
|
||
|
38 1581695816408 userGroupAntenna1581695816408
|
||
|
39 1581708415836 driveUserFolderIdIndex1581708415836
|
||
|
40 1581979837262 promo1581979837262
|
||
|
41 1582019042083 featuredInjecttion1582019042083
|
||
|
42 1582210532752 antennaExclude1582210532752
|
||
|
43 1582875306439 noteReactionLength1582875306439
|
||
|
44 1585361548360 miauth1585361548360
|
||
|
45 1585385921215 customNotification1585385921215
|
||
|
46 1585772678853 apUrl1585772678853
|
||
|
47 1586624197029 AddObjectStorageUseProxy1586624197029
|
||
|
48 1586641139527 remoteReaction1586641139527
|
||
|
49 1586708940386 pageAiScript1586708940386
|
||
|
50 1588044505511 hCaptcha1588044505511
|
||
|
51 1589023282116 pubRelay1589023282116
|
||
|
52 1595075960584 blurhash1595075960584
|
||
|
53 1595077605646 blurhashForAvatarBanner1595077605646
|
||
|
54 1595676934834 instanceIconUrl1595676934834
|
||
|
55 1595771249699 wordMute1595771249699
|
||
|
56 1595782306083 wordMute21595782306083
|
||
|
57 1596548170836 channel1596548170836
|
||
|
58 1596786425167 channel21596786425167
|
||
|
59 1597230137744 objectStorageSetPublicRead1597230137744
|
||
|
60 1597236229720 IncludingNotificationTypes1597236229720
|
||
|
61 1597385880794 addSensitiveIndex1597385880794
|
||
|
62 1597459042300 channelUnread1597459042300
|
||
|
63 1597893996136 ChannelNoteIdDescIndex1597893996136
|
||
|
64 1600353287890 mutingNotificationTypes1600353287890
|
||
|
65 1603094348345 refineAbuseUserReport1603094348345
|
||
|
66 1603095701770 refineAbuseUserReport21603095701770
|
||
|
67 1603776877564 instanceThemeColor1603776877564
|
||
|
68 1603781553011 instanceFavicon1603781553011
|
||
|
69 1604821689616 deleteAutoWatch1604821689616
|
||
|
70 1605408848373 clipDescription1605408848373
|
||
|
71 1605408971051 comments1605408971051
|
||
|
72 1605585339718 instancePinnedPages1605585339718
|
||
|
73 1605965516823 instanceImages1605965516823
|
||
|
74 1606191203881 noCrawle1606191203881
|
||
|
75 1607151207216 instancePinnedClip1607151207216
|
||
|
76 1607353487793 isExplorable1607353487793
|
||
|
77 1610277136869 registry1610277136869
|
||
|
78 1610277585759 registry21610277585759
|
||
|
79 1610283021566 registry31610283021566
|
||
|
80 1611354329133 followersUri1611354329133
|
||
|
81 1611397665007 gallery1611397665007
|
||
|
82 1611547387175 objectStorageS3ForcePathStyle1611547387175
|
||
|
83 1612619156584 announcementEmail1612619156584
|
||
|
84 1613155914446 emailNotificationTypes1613155914446
|
||
|
85 1613181457597 userLang1613181457597
|
||
|
86 1613503367223 useBigintForDriveUsage1613503367223
|
||
|
87 1615965918224 chartV21615965918224
|
||
|
88 1615966519402 chartV221615966519402
|
||
|
89 1618637372000 userLastActiveDate1618637372000
|
||
|
90 1618639857000 userHideOnlineStatus1618639857000
|
||
|
91 1619942102890 passwordReset1619942102890
|
||
|
92 1620019354680 ad1620019354680
|
||
|
93 1620364649428 ad21620364649428
|
||
|
94 1621479946000 addNoteIndexes1621479946000
|
||
|
95 1622679304522 userProfileDescriptionLength1622679304522
|
||
|
96 1622681548499 logMessageLength1622681548499
|
||
|
97 1626509500668 fixRemoteFileProxy1626509500668
|
||
|
98 1626733991004 allowlistSecureMode1626733991004
|
||
|
99 1629004542760 chartReindex1629004542760
|
||
|
100 1629024377804 deeplIntegration1629024377804
|
||
|
101 1629288472000 fixChannelUserId1629288472000
|
||
|
102 1629512953000 isUserDeleted1629512953000
|
||
|
103 1629778475000 deeplIntegration21629778475000
|
||
|
104 1629833361000 addShowTLReplies1629833361000
|
||
|
105 1629968054000 userInstanceBlocks1629968054000
|
||
|
106 1633068642000 emailRequiredForSignup1633068642000
|
||
|
107 1633071909016 userPending1633071909016
|
||
|
108 1634486652000 userPublicReactions1634486652000
|
||
|
109 1634902659689 deleteLog1634902659689
|
||
|
110 1635500777168 noteThreadMute1635500777168
|
||
|
111 1636197624383 ffVisibility1636197624383
|
||
|
112 1636697408073 removeViaMobile1636697408073
|
||
|
113 1637320813000 forwardedReport1637320813000
|
||
|
114 1639325650583 chartV31639325650583
|
||
|
115 1642611822809 emojiUrl1642611822809
|
||
|
116 1642613870898 driveFileWebpublicType1642613870898
|
||
|
117 1643963705770 chartV41643963705770
|
||
|
118 1643966656277 chartV51643966656277
|
||
|
119 1643967331284 chartV61643967331284
|
||
|
120 1644010796173 convertHardMutes1644010796173
|
||
|
121 1644058404077 chartV71644058404077
|
||
|
122 1644059847460 chartV81644059847460
|
||
|
123 1644060125705 chartV91644060125705
|
||
|
124 1644073149413 chartV101644073149413
|
||
|
125 1644095659741 chartV111644095659741
|
||
|
126 1644328606241 chartV121644328606241
|
||
|
127 1644331238153 chartV131644331238153
|
||
|
128 1644344266289 chartV141644344266289
|
||
|
129 1644395759931 instanceThemeColor1644395759931
|
||
|
130 1644481657998 chartV151644481657998
|
||
|
131 1644551208096 followingIndexes1644551208096
|
||
|
132 1645340161439 removeMaxNoteTextLength1645340161439
|
||
|
133 1645599900873 federationChartPubsub1645599900873
|
||
|
134 1646143552768 instanceDefaultTheme1646143552768
|
||
|
135 1646387162108 muteExpiresAt1646387162108
|
||
|
136 1646549089451 pollEndedNotification1646549089451
|
||
|
137 1646633030285 chartFederationActive1646633030285
|
||
|
138 1646655454495 removeInstanceDriveColumns1646655454495
|
||
|
139 1646732390560 chartFederationActiveSubPub1646732390560
|
||
|
140 1648548247382 webhook1648548247382
|
||
|
141 1648816172177 webhook21648816172177
|
||
|
142 1651224615271 foreignKeyReports1651224615271
|
||
|
143 1652859567549 uniformThemecolor1652859567549
|
||
|
144 1655368940105 nsfwDetection1655368940105
|
||
|
145 1655371960534 nsfwDetection21655371960534
|
||
|
146 1655388169582 nsfwDetection31655388169582
|
||
|
147 1655393015659 nsfwDetection41655393015659
|
||
|
148 1655813815729 driveCapacityOverrideMb1655813815729
|
||
|
149 1655918165614 userIp1655918165614
|
||
|
150 1656122560740 fileIp1656122560740
|
||
|
151 1656251734807 nsfwDetection51656251734807
|
||
|
152 1656328812281 ip21656328812281
|
||
|
153 1656408772602 nsfwDetection61656408772602
|
||
|
154 1656772790599 userModerationNote1656772790599
|
||
|
155 1657346559800 activeEmailValidation1657346559800
|
||
|
156 1658203170545 calckey1658203170545
|
||
|
157 1658656633972 noteRepliesFunction1658656633972
|
||
|
158 1658939464003 CustomMOTD1658939464003
|
||
|
159 1658941974648 CustomSplashIcons1658941974648
|
||
|
160 1658981842728 FixFirefish1658981842728
|
||
|
161 1659042130648 RecommendedTimeline1659042130648
|
||
|
162 1660068273737 GuestTimeline1660068273737
|
||
|
163 1665091090561 addRenoteMuting1665091090561
|
||
|
164 1668828368510 Page1668828368510
|
||
|
165 1668831378728 FixFirefishAgain1668831378728
|
||
|
166 1669138716634 whetherPushNotifyToSendReadMessage1669138716634
|
||
|
167 1669288094000 addMovedToAndKnownAs1669288094000
|
||
|
168 1671199573000 addFkAbuseUserReportTargetUserIdToUserId1671199573000
|
||
|
169 1671388343000 FirefishRepoMove1671388343000
|
||
|
170 1672882664294 DefaultReaction1672882664294
|
||
|
171 1673336077243 PollChoiceLength1673336077243
|
||
|
172 1676093997212 AntennaInstances1676093997212
|
||
|
173 1677935903517 DriveComment1677935903517
|
||
|
174 1678426061773 tweakVarcharLength1678426061773
|
||
|
175 1678945242650 addPropsForCustomEmoji1678945242650
|
||
|
176 1679269929000 FixRepo1679269929000
|
||
|
177 1680375641101 CleanCharts1680375641101
|
||
|
178 1680426269172 SpeakAsCat1680426269172
|
||
|
179 1682753227899 NoteEdit1682753227899
|
||
|
180 1682777547198 LibreTranslate1682777547198
|
||
|
181 1682891890317 InstanceSilence1682891890317
|
||
|
182 1682891891317 AddHiddenPosts1682891891317
|
||
|
183 1683682889948 PreventAiLearning1683682889948
|
||
|
184 1683980686995 ExperimentalFeatures1683980686995
|
||
|
185 1684206886988 RemoveShowTimelineReplies1684206886988
|
||
|
186 1684494870830 EmojiSize1684494870830
|
||
|
187 1688280713783 AddMetaOptions1688280713783
|
||
|
188 1688845537045 AnnouncementPopup1688845537045
|
||
|
189 1689136347561 DonationLink1689136347561
|
||
|
190 1689739513827 FirefishRepo1689739513827
|
||
|
191 1689965609061 IceshrimpRepo1689965609061
|
||
|
192 1695747439252 DropReversi1695747439252
|
||
|
193 1695748502971 IndexNoteUrl1695748502971
|
||
|
194 1695748874491 DropAds1695748874491
|
||
|
195 1695749386779 InstanceAccountDomainCleanup1695749386779
|
||
|
196 1695749948350 MoveAntennaToCache1695749948350
|
||
|
197 1695861526125 IndexNoteUserId1695861526125
|
||
|
198 1697216726757 AutoGenerateVapidKeys1697216726757
|
||
|
199 1697226201723 AddOAuthTables1697226201723
|
||
|
200 1697246035867 IncreaseOAuthRedirecturisLength1697246035867
|
||
|
201 1697286869039 IncreaseOauthTokenRedirecturisLength1697286869039
|
||
|
202 1697289658422 ResyncWithOrm1697289658422
|
||
|
203 1697302438587 AddUserProfileMentions1697302438587
|
||
|
204 1697649475796 SecureModeDefaults1697649475796
|
||
|
205 1697663824168 RemoveNsfwDetection1697663824168
|
||
|
206 1697665612162 RemoveProxyAccount1697665612162
|
||
|
207 1697733603329 UserListOptions1697733603329
|
||
|
208 1700331070890 NoteTextFtsIdx1700331070890
|
||
|
209 1700517975122 UserAvatarBannerRefactor1700517975122
|
||
|
210 1700623165718 AddNoteIdUserhostIdx1700623165718
|
||
|
211 1700686908916 AddAutofollowedAccount1700686908916
|
||
|
212 1700962939886 AddHtmlCache1700962939886
|
||
|
213 1701069578019 RemoveTwitterIntegration1701069578019
|
||
|
214 1701108527387 ReworkHardMutes1701108527387
|
||
|
215 1701118152149 IncreaseHostCharLimit1701118152149
|
||
|
216 1702680809638 AddNoteCreatedatUseridIdx1702680809638
|
||
|
217 1702744857694 UserIssuspendedIdx1702744857694
|
||
|
\.
|
||
|
|
||
|
SELECT pg_catalog.setval('public.migrations_id_seq', 217, true);
|
||
|
|
||
|
-- this is just for my personal fork, you won't need it
|
||
|
DROP FUNCTION IF EXISTS kopper_fts_reindex_file_comment CASCADE;
|
||
|
DROP FUNCTION IF EXISTS kopper_fts_reindex_note CASCADE;
|
||
|
DROP FUNCTION IF EXISTS kopper_fts_generate_search_vector CASCADE;
|
||
|
ALTER TABLE note DROP COLUMN IF EXISTS kopper_fts_search_vector CASCADE;
|
||
|
|
||
|
COMMIT; -- cross your fingers
|