From 2db415ce42fb96059b6d7fce4cf4ce078a62680e Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 27 Jan 2023 17:50:14 +0300 Subject: baseline non-production databases to 1.36 --- src/main/resources/db/migration/V1.22__schema.sql | 1338 ++++++++++++++++++++ .../db/migration/V1.24__fix_lastmessage.sql | 1 + .../db/migration/V1.25__update_tokens_size.sql | 3 + .../db/migration/V1.26__case_insensitive_nick.sql | 1 + .../db/migration/V1.27__followers_unique.sql | 4 + .../V1.35__case_insensitive_email_jid.sql | 2 + .../resources/db/migration/V1.36__web_tokens.sql | 1 + .../resources/db/specific/h2/V1.22__schema.sql | 372 ------ .../db/specific/h2/V1.24__fix_lastmessage.sql | 2 - .../db/specific/h2/V1.25__update_tokens_size.sql | 3 - .../specific/h2/V1.26__case_insensitive_nick.sql | 1 - .../db/specific/h2/V1.27__followers_unique.sql | 1 - .../h2/V1.35__case_insensitive_email_jid.sql | 2 - .../db/specific/mariadb/V1.24__fix_lastmessage.sql | 1 - .../specific/mariadb/V1.25__update_tokens_size.sql | 3 - .../specific/mariadb/V1.27__followers_unique.sql | 1 - .../specific/postgresql/V1.24__fix_lastmessage.sql | 1 - .../postgresql/V1.25__update_tokens_size.sql | 3 - .../postgresql/V1.26__case_insensitive_nick.sql | 1 - .../postgresql/V1.27__followers_unique.sql | 4 - .../V1.35__case_insensitive_email_jid.sql | 2 - .../db/specific/postgresql/V1.36__web_tokens.sql | 1 - .../resources/db/specific/sqlite/V1.22__schema.sql | 377 ------ 23 files changed, 1350 insertions(+), 775 deletions(-) create mode 100644 src/main/resources/db/migration/V1.22__schema.sql create mode 100644 src/main/resources/db/migration/V1.24__fix_lastmessage.sql create mode 100644 src/main/resources/db/migration/V1.25__update_tokens_size.sql create mode 100644 src/main/resources/db/migration/V1.26__case_insensitive_nick.sql create mode 100644 src/main/resources/db/migration/V1.27__followers_unique.sql create mode 100644 src/main/resources/db/migration/V1.35__case_insensitive_email_jid.sql create mode 100644 src/main/resources/db/migration/V1.36__web_tokens.sql delete mode 100644 src/main/resources/db/specific/h2/V1.22__schema.sql delete mode 100644 src/main/resources/db/specific/h2/V1.24__fix_lastmessage.sql delete mode 100644 src/main/resources/db/specific/h2/V1.25__update_tokens_size.sql delete mode 100644 src/main/resources/db/specific/h2/V1.26__case_insensitive_nick.sql delete mode 100644 src/main/resources/db/specific/h2/V1.27__followers_unique.sql delete mode 100644 src/main/resources/db/specific/h2/V1.35__case_insensitive_email_jid.sql delete mode 100644 src/main/resources/db/specific/mariadb/V1.24__fix_lastmessage.sql delete mode 100644 src/main/resources/db/specific/mariadb/V1.25__update_tokens_size.sql delete mode 100644 src/main/resources/db/specific/mariadb/V1.27__followers_unique.sql delete mode 100644 src/main/resources/db/specific/postgresql/V1.24__fix_lastmessage.sql delete mode 100644 src/main/resources/db/specific/postgresql/V1.25__update_tokens_size.sql delete mode 100644 src/main/resources/db/specific/postgresql/V1.26__case_insensitive_nick.sql delete mode 100644 src/main/resources/db/specific/postgresql/V1.27__followers_unique.sql delete mode 100644 src/main/resources/db/specific/postgresql/V1.35__case_insensitive_email_jid.sql delete mode 100644 src/main/resources/db/specific/postgresql/V1.36__web_tokens.sql delete mode 100644 src/main/resources/db/specific/sqlite/V1.22__schema.sql (limited to 'src/main/resources/db') diff --git a/src/main/resources/db/migration/V1.22__schema.sql b/src/main/resources/db/migration/V1.22__schema.sql new file mode 100644 index 00000000..aab050a6 --- /dev/null +++ b/src/main/resources/db/migration/V1.22__schema.sql @@ -0,0 +1,1338 @@ +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 15.1 (Debian 15.1-1.pgdg110+1) +-- Dumped by pg_dump version 15.1 (Debian 15.1-1.pgdg110+1) + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', 'public', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- Name: case_insensitive; Type: COLLATION; Schema: public; Owner: juick +-- + +CREATE COLLATION public.case_insensitive (provider = icu, deterministic = false, locale = 'und-u-ks-level2'); + + +ALTER COLLATION public.case_insensitive OWNER TO juick; + +-- +-- Name: pgcrypto; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public; + + +-- +-- Name: EXTENSION pgcrypto; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions'; + + +-- +-- Name: auth_protocol; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE public.auth_protocol AS ENUM ( + 'xmpp', + 'email', + 'sms' +); + + +ALTER TYPE public.auth_protocol OWNER TO juick; + +-- +-- Name: messages_attach; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE public.messages_attach AS ENUM ( + 'jpg', + 'mp4', + 'png' +); + + +ALTER TYPE public.messages_attach OWNER TO juick; + +-- +-- Name: messages_lang; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE public.messages_lang AS ENUM ( + 'en', + 'ru', + 'fr', + 'fa', + '__' +); + + +ALTER TYPE public.messages_lang OWNER TO juick; + +-- +-- Name: users_lang; Type: TYPE; Schema: public; Owner: juick +-- + +CREATE TYPE public.users_lang AS ENUM ( + 'en', + 'ru', + 'fr', + 'fa', + '__' +); + + +ALTER TYPE public.users_lang OWNER TO juick; + +-- +-- Name: CAST (character varying AS public.messages_attach); Type: CAST; Schema: -; Owner: - +-- + +CREATE CAST (character varying AS public.messages_attach) WITH INOUT AS ASSIGNMENT; + + +SET default_tablespace = ''; + +SET default_table_access_method = heap; + +-- +-- Name: android; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.android ( + user_id bigint NOT NULL, + regid character varying(255) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.android OWNER TO juick; + +-- +-- Name: auth; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.auth ( + user_id bigint, + protocol public.auth_protocol NOT NULL, + account character varying(128) NOT NULL, + authcode character varying(8) NOT NULL, + ts timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL +); + + +ALTER TABLE public.auth OWNER TO juick; + +-- +-- Name: bl_tags; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.bl_tags ( + user_id bigint NOT NULL, + tag_id bigint NOT NULL +); + + +ALTER TABLE public.bl_tags OWNER TO juick; + +-- +-- Name: bl_users; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.bl_users ( + user_id bigint NOT NULL, + bl_user_id bigint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.bl_users OWNER TO juick; + +-- +-- Name: emails; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.emails ( + user_id bigint NOT NULL, + email character varying(128) NOT NULL, + subscr_hour smallint +); + + +ALTER TABLE public.emails OWNER TO juick; + +-- +-- Name: facebook; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.facebook ( + user_id bigint, + fb_id numeric, + loginhash character varying(36), + access_token character varying(255), + ts timestamp with time zone DEFAULT now() NOT NULL, + fb_name character varying(64), + fb_link character varying(255) NOT NULL, + crosspost boolean DEFAULT true NOT NULL +); + + +ALTER TABLE public.facebook OWNER TO juick; + +-- +-- Name: favorites; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.favorites ( + user_id bigint NOT NULL, + message_id bigint NOT NULL, + ts timestamp with time zone, + like_id smallint DEFAULT 1 NOT NULL, + user_uri character varying(255) NOT NULL DEFAULT ''::character varying +); + + +ALTER TABLE public.favorites OWNER TO juick; + +-- +-- Name: followers; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.followers ( + user_id bigint, + ts timestamp with time zone DEFAULT now() NOT NULL, + acct character varying(64) NOT NULL +); + + +ALTER TABLE public.followers OWNER TO juick; + +-- +-- Name: images; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.images ( + mid bigint NOT NULL, + rid bigint NOT NULL, + thumb bigint NOT NULL, + small bigint NOT NULL, + medium bigint NOT NULL, + height bigint NOT NULL, + width bigint NOT NULL +); + + +ALTER TABLE public.images OWNER TO juick; + +-- +-- Name: ios; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.ios ( + user_id bigint NOT NULL, + token character varying(64) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.ios OWNER TO juick; + +-- +-- Name: jids; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.jids ( + user_id bigint, + jid character varying(64) NOT NULL, + active smallint DEFAULT 0 NOT NULL, + loginhash character varying(36), + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.jids OWNER TO juick; + +-- +-- Name: logins; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.logins ( + user_id bigint NOT NULL, + hash character varying(16) NOT NULL +); + + +ALTER TABLE public.logins OWNER TO juick; + +-- +-- Name: mail; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.mail ( + user_id bigint NOT NULL, + hash character varying(16) NOT NULL, + ts timestamp(6) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL +); + + +ALTER TABLE public.mail OWNER TO juick; + +-- +-- Name: meon; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.meon ( + id bigint NOT NULL, + user_id bigint NOT NULL, + link character varying(255) NOT NULL, + name character varying(32) NOT NULL, + ico smallint +); + + +ALTER TABLE public.meon OWNER TO juick; + +-- +-- Name: meon_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE public.meon_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.meon_id_seq OWNER TO juick; + +-- +-- Name: meon_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE public.meon_id_seq OWNED BY public.meon.id; + + +-- +-- Name: messages; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.messages ( + message_id bigint NOT NULL, + user_id bigint NOT NULL, + lang public.messages_lang DEFAULT '__'::public.messages_lang NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + replies smallint DEFAULT (0)::smallint NOT NULL, + maxreplyid smallint DEFAULT (0)::smallint NOT NULL, + privacy smallint DEFAULT (1)::smallint NOT NULL, + readonly boolean DEFAULT false NOT NULL, + attach public.messages_attach, + place_id bigint, + lat numeric(10,7), + lon numeric(10,7), + popular smallint DEFAULT (0)::smallint NOT NULL, + hidden smallint DEFAULT (0)::smallint NOT NULL, + likes smallint DEFAULT (0)::smallint NOT NULL, + updated timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.messages OWNER TO juick; + +-- +-- Name: messages_access; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.messages_access ( + message_id bigint NOT NULL, + user_id bigint NOT NULL +); + + +ALTER TABLE public.messages_access OWNER TO juick; + +-- +-- Name: messages_message_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE public.messages_message_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.messages_message_id_seq OWNER TO juick; + +-- +-- Name: messages_message_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE public.messages_message_id_seq OWNED BY public.messages.message_id; + + +-- +-- Name: messages_properties; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.messages_properties ( + message_id bigint NOT NULL, + reply_id smallint NOT NULL, + property_key character varying(255) NOT NULL, + property_value text NOT NULL +); + + +ALTER TABLE public.messages_properties OWNER TO juick; + +-- +-- Name: messages_tags; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.messages_tags ( + message_id bigint NOT NULL, + tag_id bigint NOT NULL +); + + +ALTER TABLE public.messages_tags OWNER TO juick; + +-- +-- Name: messages_txt; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.messages_txt ( + message_id bigint NOT NULL, + repliesby text, + txt text NOT NULL, + updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL +); + + +ALTER TABLE public.messages_txt OWNER TO juick; + +CREATE INDEX messages_idx ON messages_txt USING GIN (to_tsvector('russian', txt)); + +-- +-- Name: places; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.places ( + place_id bigint NOT NULL, + lat numeric(10,7) NOT NULL, + lon numeric(10,7) NOT NULL, + name character varying(64) NOT NULL, + descr character varying(255), + url character varying(128), + user_id bigint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.places OWNER TO juick; + +-- +-- Name: places_place_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE public.places_place_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.places_place_id_seq OWNER TO juick; + +-- +-- Name: places_place_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE public.places_place_id_seq OWNED BY public.places.place_id; + + +-- +-- Name: places_tags; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.places_tags ( + place_id bigint NOT NULL, + tag_id bigint NOT NULL +); + + +ALTER TABLE public.places_tags OWNER TO juick; + +-- +-- Name: pm; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.pm ( + user_id bigint NOT NULL, + user_id_to bigint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + txt text NOT NULL +); + + +ALTER TABLE public.pm OWNER TO juick; + +-- +-- Name: pm_inroster; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.pm_inroster ( + user_id bigint NOT NULL, + jid character varying(64) NOT NULL +); + + +ALTER TABLE public.pm_inroster OWNER TO juick; + +-- +-- Name: reactions; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.reactions ( + like_id smallint NOT NULL, + description character varying(100) NOT NULL +); + + +ALTER TABLE public.reactions OWNER TO juick; + +-- +-- Name: replies; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.replies ( + message_id bigint NOT NULL, + reply_id smallint NOT NULL, + user_id bigint NOT NULL, + replyto smallint DEFAULT (0)::smallint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + attach public.messages_attach, + txt text NOT NULL, + updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + user_uri character varying(255) DEFAULT NULL::character varying, + reply_uri character varying(255) DEFAULT NULL::character varying, + html smallint DEFAULT '0'::smallint NOT NULL +); + + +ALTER TABLE public.replies OWNER TO juick; + +-- +-- Name: sphinx; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.sphinx ( + counter_id smallint NOT NULL, + max_id bigint NOT NULL +); + + +ALTER TABLE public.sphinx OWNER TO juick; + +-- +-- Name: subscr_messages; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.subscr_messages ( + message_id bigint NOT NULL, + suser_id bigint NOT NULL, + last_read_rid smallint DEFAULT 0 NOT NULL +); + + +ALTER TABLE public.subscr_messages OWNER TO juick; + +-- +-- Name: subscr_tags; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.subscr_tags ( + tag_id bigint NOT NULL, + suser_id bigint NOT NULL +); + + +ALTER TABLE public.subscr_tags OWNER TO juick; + +-- +-- Name: subscr_users; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.subscr_users ( + user_id bigint NOT NULL, + suser_id bigint NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.subscr_users OWNER TO juick; + +-- +-- Name: tags; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.tags ( + tag_id bigint NOT NULL, + synonym_id bigint, + name character varying(70) COLLATE public.case_insensitive, + top boolean DEFAULT false NOT NULL, + noindex boolean DEFAULT false NOT NULL, + stat_messages bigint DEFAULT (0)::bigint NOT NULL, + stat_users smallint DEFAULT (0)::smallint NOT NULL +); + + +ALTER TABLE public.tags OWNER TO juick; + +-- +-- Name: tags_ignore; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.tags_ignore ( + tag_id bigint NOT NULL +); + + +ALTER TABLE public.tags_ignore OWNER TO juick; + +-- +-- Name: tags_synonyms; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.tags_synonyms ( + name character varying(64) NOT NULL, + changeto character varying(64) NOT NULL +); + + +ALTER TABLE public.tags_synonyms OWNER TO juick; + +-- +-- Name: tags_tag_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE public.tags_tag_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.tags_tag_id_seq OWNER TO juick; + +-- +-- Name: tags_tag_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE public.tags_tag_id_seq OWNED BY public.tags.tag_id; + + +-- +-- Name: telegram; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.telegram ( + user_id bigint, + tg_id numeric NOT NULL, + tg_name character varying(64) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + loginhash character varying(36) +); + + +ALTER TABLE public.telegram OWNER TO juick; + +-- +-- Name: top_ignore_messages; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.top_ignore_messages ( + message_id bigint NOT NULL +); + + +ALTER TABLE public.top_ignore_messages OWNER TO juick; + +-- +-- Name: top_ignore_tags; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.top_ignore_tags ( + tag_id bigint NOT NULL +); + + +ALTER TABLE public.top_ignore_tags OWNER TO juick; + +-- +-- Name: top_ignore_users; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.top_ignore_users ( + user_id bigint NOT NULL +); + + +ALTER TABLE public.top_ignore_users OWNER TO juick; + +-- +-- Name: twitter; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.twitter ( + user_id bigint NOT NULL, + access_token character varying(64) NOT NULL, + access_token_secret character varying(64) NOT NULL, + uname character varying(64) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + crosspost boolean DEFAULT true NOT NULL +); + + +ALTER TABLE public.twitter OWNER TO juick; + +-- +-- Name: useroptions; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.useroptions ( + user_id bigint NOT NULL, + jnotify smallint DEFAULT 1 NOT NULL, + subscr_active smallint DEFAULT 1 NOT NULL, + off_ts timestamp with time zone, + xmppxhtml smallint DEFAULT 0 NOT NULL, + subscr_notify smallint DEFAULT 1 NOT NULL, + recommendations smallint DEFAULT 1 NOT NULL, + privacy_view smallint DEFAULT 1 NOT NULL, + privacy_reply smallint DEFAULT 1 NOT NULL, + privacy_pm smallint DEFAULT 1 NOT NULL, + repliesview smallint DEFAULT 0 NOT NULL +); + + +ALTER TABLE public.useroptions OWNER TO juick; + +-- +-- Name: users; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.users ( + id bigint NOT NULL, + nick character varying(64) NOT NULL, + passw character varying(32) NOT NULL, + lang public.users_lang DEFAULT '__'::public.users_lang NOT NULL, + banned smallint DEFAULT (0)::smallint NOT NULL, + lastmessage timestamp with time zone, + lastpm bigint DEFAULT (0)::bigint NOT NULL, + lastphoto bigint DEFAULT (0)::bigint NOT NULL, + karma smallint DEFAULT (0)::smallint NOT NULL, + last_seen timestamp with time zone +); + + +ALTER TABLE public.users OWNER TO juick; + +-- +-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: juick +-- + +CREATE SEQUENCE public.users_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.users_id_seq OWNER TO juick; + +-- +-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: juick +-- + +ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; + + +-- +-- Name: users_subscr; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.users_subscr ( + user_id bigint NOT NULL, + cnt smallint DEFAULT (0)::smallint NOT NULL +); + + +ALTER TABLE public.users_subscr OWNER TO juick; + +-- +-- Name: usersinfo; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.usersinfo ( + user_id bigint NOT NULL, + jid character varying(64), + fullname character varying(64), + country character varying(32), + url character varying(128), + gender character varying(32), + bday character varying(32), + descr text +); + + +ALTER TABLE public.usersinfo OWNER TO juick; + +-- +-- Name: version; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.version ( + version numeric NOT NULL +); + + +ALTER TABLE public.version OWNER TO juick; + +-- +-- Name: vk; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.vk ( + user_id bigint, + vk_id numeric NULL, + loginhash character varying(36), + access_token character varying(128) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL, + vk_name character varying(64) NOT NULL, + vk_link character varying(64) NOT NULL, + crosspost smallint DEFAULT (1)::smallint NOT NULL +); + + +ALTER TABLE public.vk OWNER TO juick; + +-- +-- Name: winphone; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.winphone ( + user_id bigint NOT NULL, + url character varying(255) NOT NULL, + ts timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.winphone OWNER TO juick; + +-- +-- Name: wl_users; Type: TABLE; Schema: public; Owner: juick +-- + +CREATE TABLE public.wl_users ( + user_id bigint NOT NULL, + wl_user_id bigint NOT NULL +); + + +ALTER TABLE public.wl_users OWNER TO juick; + +-- +-- Name: meon id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.meon ALTER COLUMN id SET DEFAULT nextval('public.meon_id_seq'::regclass); + + +-- +-- Name: messages message_id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.messages ALTER COLUMN message_id SET DEFAULT nextval('public.messages_message_id_seq'::regclass); + + +-- +-- Name: places place_id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.places ALTER COLUMN place_id SET DEFAULT nextval('public.places_place_id_seq'::regclass); + + +-- +-- Name: tags tag_id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.tags ALTER COLUMN tag_id SET DEFAULT nextval('public.tags_tag_id_seq'::regclass); + + +-- +-- Name: users id; Type: DEFAULT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass); + + +-- +-- Name: images idx_20438_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.images + ADD CONSTRAINT idx_20438_primary PRIMARY KEY (mid, rid); + + +-- +-- Name: mail idx_20453_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.mail + ADD CONSTRAINT idx_20453_primary PRIMARY KEY (user_id); + + +-- +-- Name: meon idx_20458_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.meon + ADD CONSTRAINT idx_20458_primary PRIMARY KEY (id); + + +-- +-- Name: messages idx_20483_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.messages + ADD CONSTRAINT idx_20483_primary PRIMARY KEY (message_id); + + +-- +-- Name: messages_txt idx_20502_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.messages_txt + ADD CONSTRAINT idx_20502_primary PRIMARY KEY (message_id); + + +-- +-- Name: places idx_20514_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.places + ADD CONSTRAINT idx_20514_primary PRIMARY KEY (place_id); + + +-- +-- Name: sphinx idx_20571_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.sphinx + ADD CONSTRAINT idx_20571_primary PRIMARY KEY (counter_id); + + +-- +-- Name: tags idx_20586_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.tags + ADD CONSTRAINT idx_20586_primary PRIMARY KEY (tag_id); + + +-- +-- Name: top_ignore_tags idx_20616_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.top_ignore_tags + ADD CONSTRAINT idx_20616_primary PRIMARY KEY (tag_id); + + +-- +-- Name: top_ignore_users idx_20619_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.top_ignore_users + ADD CONSTRAINT idx_20619_primary PRIMARY KEY (user_id); + + +-- +-- Name: twitter idx_20622_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.twitter + ADD CONSTRAINT idx_20622_primary PRIMARY KEY (user_id); + + +-- +-- Name: useroptions idx_20627_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.useroptions + ADD CONSTRAINT idx_20627_primary PRIMARY KEY (user_id); + + +-- +-- Name: users idx_20653_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT idx_20653_primary PRIMARY KEY (id); + + +-- +-- Name: usersinfo idx_20663_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.usersinfo + ADD CONSTRAINT idx_20663_primary PRIMARY KEY (user_id); + + +-- +-- Name: users_subscr idx_20672_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.users_subscr + ADD CONSTRAINT idx_20672_primary PRIMARY KEY (user_id); + + +-- +-- Name: wl_users idx_20694_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.wl_users + ADD CONSTRAINT idx_20694_primary PRIMARY KEY (user_id, wl_user_id); + + +-- +-- Name: bl_users idx_29418_primary; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.bl_users + ADD CONSTRAINT idx_29418_primary PRIMARY KEY (user_id, bl_user_id); + + +-- +-- Name: messages_properties message_properties_key; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.messages_properties + ADD CONSTRAINT message_properties_key UNIQUE (message_id, reply_id, property_key); + + +-- +-- Name: reactions reactions_pkey; Type: CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.reactions + ADD CONSTRAINT reactions_pkey PRIMARY KEY (like_id); + + +-- +-- Name: idx_20390_regid; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20390_regid ON public.android USING btree (regid); + + +-- +-- Name: idx_20390_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20390_user_id ON public.android USING btree (user_id); + + +-- +-- Name: idx_20404_tag_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20404_tag_id ON public.bl_tags USING btree (tag_id); + + +-- +-- Name: idx_20404_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20404_user_id ON public.bl_tags USING btree (user_id); + + +-- +-- Name: idx_20418_email; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20418_email ON public.emails USING btree (email); + + +-- +-- Name: idx_20421_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20421_user_id ON public.facebook USING btree (user_id); + + +-- +-- Name: idx_20441_token; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20441_token ON public.ios USING btree (token); + + +-- +-- Name: idx_20441_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20441_user_id ON public.ios USING btree (user_id); + + +-- +-- Name: idx_20445_jid; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20445_jid ON public.jids USING btree (jid); + + +-- +-- Name: idx_20445_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20445_user_id ON public.jids USING btree (user_id); + + +-- +-- Name: idx_20450_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20450_user_id ON public.logins USING btree (user_id); + + +-- +-- Name: idx_20483_attach; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20483_attach ON public.messages USING btree (attach); + + +-- +-- Name: idx_20483_hidden; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20483_hidden ON public.messages USING btree (hidden); + + +-- +-- Name: idx_20483_place_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20483_place_id ON public.messages USING btree (place_id); + + +-- +-- Name: idx_20483_popular; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20483_popular ON public.messages USING btree (popular); + + +-- +-- Name: idx_20483_ts; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20483_ts ON public.messages USING btree (ts); + + +-- +-- Name: idx_20483_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20483_user_id ON public.messages USING btree (user_id); + + +-- +-- Name: idx_20496_message_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20496_message_id ON public.messages_access USING btree (message_id); + + +-- +-- Name: idx_20499_message_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20499_message_id ON public.messages_tags USING btree (message_id); + + +-- +-- Name: idx_20499_message_id_2; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20499_message_id_2 ON public.messages_tags USING btree (message_id, tag_id); + + +-- +-- Name: idx_20499_tag_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20499_tag_id ON public.messages_tags USING btree (tag_id); + + +-- +-- Name: idx_20529_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20529_user_id ON public.pm_inroster USING btree (user_id); + + +-- +-- Name: idx_20529_user_id_2; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20529_user_id_2 ON public.pm_inroster USING btree (user_id, jid); + + +-- +-- Name: idx_20563_message_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20563_message_id ON public.replies USING btree (message_id); + + +-- +-- Name: idx_20563_ts; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20563_ts ON public.replies USING btree (ts); + + +-- +-- Name: idx_20563_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20563_user_id ON public.replies USING btree (user_id); + + +-- +-- Name: idx_20574_message_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20574_message_id ON public.subscr_messages USING btree (message_id, suser_id); + + +-- +-- Name: idx_20577_tag_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20577_tag_id ON public.subscr_tags USING btree (tag_id, suser_id); + + +-- +-- Name: idx_20580_suser_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20580_suser_id ON public.subscr_users USING btree (suser_id); + + +-- +-- Name: idx_20580_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20580_user_id ON public.subscr_users USING btree (user_id, suser_id); + + +-- +-- Name: idx_20586_synonym_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20586_synonym_id ON public.tags USING btree (synonym_id); + + +-- +-- Name: idx_20627_recommendations; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20627_recommendations ON public.useroptions USING btree (recommendations); + + +-- +-- Name: idx_20653_nick; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20653_nick ON public.users USING btree (nick); + + +-- +-- Name: idx_20682_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20682_user_id ON public.vk USING btree (user_id); + + +-- +-- Name: idx_20690_url; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE UNIQUE INDEX idx_20690_url ON public.winphone USING btree (url); + + +-- +-- Name: idx_20690_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_20690_user_id ON public.winphone USING btree (user_id); + + +-- +-- Name: idx_29422_message_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_29422_message_id ON public.favorites USING btree (message_id); + + +-- +-- Name: idx_29422_user_id; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX idx_29422_user_id ON public.favorites USING btree (user_id); + + +-- +-- Name: reply_uri_index; Type: INDEX; Schema: public; Owner: juick +-- + +CREATE INDEX reply_uri_index ON public.replies USING btree (reply_uri); + + +-- +-- Name: favorites favorites_like_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.favorites + ADD CONSTRAINT favorites_like_id_fkey FOREIGN KEY (like_id) REFERENCES public.reactions(like_id); + + +-- +-- Name: followers followers_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: juick +-- + +ALTER TABLE ONLY public.followers + ADD CONSTRAINT followers_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id); + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/src/main/resources/db/migration/V1.24__fix_lastmessage.sql b/src/main/resources/db/migration/V1.24__fix_lastmessage.sql new file mode 100644 index 00000000..ba3eee8c --- /dev/null +++ b/src/main/resources/db/migration/V1.24__fix_lastmessage.sql @@ -0,0 +1 @@ +ALTER TABLE users ALTER COLUMN lastmessage TYPE timestamp with time zone \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.25__update_tokens_size.sql b/src/main/resources/db/migration/V1.25__update_tokens_size.sql new file mode 100644 index 00000000..a1c7bbac --- /dev/null +++ b/src/main/resources/db/migration/V1.25__update_tokens_size.sql @@ -0,0 +1,3 @@ +ALTER TABLE vk ALTER COLUMN access_token TYPE character varying(255); +ALTER TABLE twitter ALTER COLUMN access_token TYPE character varying(255); +ALTER TABLE facebook ALTER COLUMN access_token TYPE character varying(255); \ No newline at end of file diff --git a/src/main/resources/db/migration/V1.26__case_insensitive_nick.sql b/src/main/resources/db/migration/V1.26__case_insensitive_nick.sql new file mode 100644 index 00000000..a68c15f3 --- /dev/null +++ b/src/main/resources/db/migration/V1.26__case_insensitive_nick.sql @@ -0,0 +1 @@ +ALTER TABLE users ALTER COLUMN nick TYPE character varying(64) COLLATE case_insensitive diff --git a/src/main/resources/db/migration/V1.27__followers_unique.sql b/src/main/resources/db/migration/V1.27__followers_unique.sql new file mode 100644 index 00000000..5a15d9ae --- /dev/null +++ b/src/main/resources/db/migration/V1.27__followers_unique.sql @@ -0,0 +1,4 @@ +DELETE +FROM followers A USING followers B +WHERE A.user_id=B.user_id AND A.ts<=B.ts AND A.acct=B.acct AND A.ctid