diff options
Diffstat (limited to 'src/main/resources/db')
17 files changed, 1338 insertions, 763 deletions
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/specific/postgresql/V1.24__fix_lastmessage.sql b/src/main/resources/db/migration/V1.24__fix_lastmessage.sql index ba3eee8c..ba3eee8c 100644 --- a/src/main/resources/db/specific/postgresql/V1.24__fix_lastmessage.sql +++ b/src/main/resources/db/migration/V1.24__fix_lastmessage.sql diff --git a/src/main/resources/db/specific/h2/V1.25__update_tokens_size.sql b/src/main/resources/db/migration/V1.25__update_tokens_size.sql index a1c7bbac..a1c7bbac 100644 --- a/src/main/resources/db/specific/h2/V1.25__update_tokens_size.sql +++ b/src/main/resources/db/migration/V1.25__update_tokens_size.sql diff --git a/src/main/resources/db/specific/postgresql/V1.26__case_insensitive_nick.sql b/src/main/resources/db/migration/V1.26__case_insensitive_nick.sql index a68c15f3..a68c15f3 100644 --- a/src/main/resources/db/specific/postgresql/V1.26__case_insensitive_nick.sql +++ b/src/main/resources/db/migration/V1.26__case_insensitive_nick.sql diff --git a/src/main/resources/db/specific/postgresql/V1.27__followers_unique.sql b/src/main/resources/db/migration/V1.27__followers_unique.sql index 5a15d9ae..5a15d9ae 100644 --- a/src/main/resources/db/specific/postgresql/V1.27__followers_unique.sql +++ b/src/main/resources/db/migration/V1.27__followers_unique.sql diff --git a/src/main/resources/db/specific/postgresql/V1.35__case_insensitive_email_jid.sql b/src/main/resources/db/migration/V1.35__case_insensitive_email_jid.sql index 93a987b8..93a987b8 100644 --- a/src/main/resources/db/specific/postgresql/V1.35__case_insensitive_email_jid.sql +++ b/src/main/resources/db/migration/V1.35__case_insensitive_email_jid.sql diff --git a/src/main/resources/db/specific/postgresql/V1.36__web_tokens.sql b/src/main/resources/db/migration/V1.36__web_tokens.sql index ccdefad2..ccdefad2 100644 --- a/src/main/resources/db/specific/postgresql/V1.36__web_tokens.sql +++ b/src/main/resources/db/migration/V1.36__web_tokens.sql diff --git a/src/main/resources/db/specific/h2/V1.22__schema.sql b/src/main/resources/db/specific/h2/V1.22__schema.sql deleted file mode 100644 index e616c943..00000000 --- a/src/main/resources/db/specific/h2/V1.22__schema.sql +++ /dev/null @@ -1,372 +0,0 @@ --- H2 2.1.214; -SET DB_CLOSE_DELAY -1; - -CREATE MEMORY TABLE "PUBLIC"."ANDROID"( - "USER_ID" INTEGER NOT NULL, - "REGID" VARCHAR(1024) NOT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.ANDROID; -CREATE MEMORY TABLE "PUBLIC"."MAIL"( - "USER_ID" INTEGER NOT NULL, - "HASH" CHARACTER(16) NOT NULL, - "TS" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL -); -ALTER TABLE "PUBLIC"."MAIL" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_23" PRIMARY KEY("USER_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.MAIL; -CREATE MEMORY TABLE "PUBLIC"."BL_TAGS"( - "USER_ID" INTEGER NOT NULL, - "TAG_ID" INTEGER NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.BL_TAGS; -CREATE MEMORY TABLE "PUBLIC"."BL_USERS"( - "USER_ID" INTEGER NOT NULL, - "BL_USER_ID" INTEGER NOT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL -); -ALTER TABLE "PUBLIC"."BL_USERS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_2" PRIMARY KEY("USER_ID", "BL_USER_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.BL_USERS; -CREATE MEMORY TABLE "PUBLIC"."REACTIONS"( - "LIKE_ID" INTEGER NOT NULL, - "DESCRIPTION" CHARACTER VARYING(100) NOT NULL -); -CREATE MEMORY TABLE "PUBLIC"."FAVORITES"( - "USER_ID" INTEGER NOT NULL, - "MESSAGE_ID" INTEGER NOT NULL, - "TS" TIMESTAMP NOT NULL, - "LIKE_ID" INTEGER, - "USER_URI" VARCHAR(255) DEFAULT '' NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.FAVORITES; -CREATE MEMORY TABLE "PUBLIC"."AUTH"( - "USER_ID" INTEGER, - "PROTOCOL" ENUM('xmpp', 'email', 'sms') NOT NULL, - "ACCOUNT" CHARACTER(64) NOT NULL, - "AUTHCODE" CHARACTER(8) NOT NULL, - "TS" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.AUTH; -CREATE MEMORY TABLE "PUBLIC"."IMAGES"( - "MID" INTEGER NOT NULL, - "RID" INTEGER NOT NULL, - "THUMB" INTEGER NOT NULL, - "SMALL" INTEGER NOT NULL, - "MEDIUM" INTEGER NOT NULL, - "HEIGHT" INTEGER NOT NULL, - "WIDTH" INTEGER NOT NULL -); -ALTER TABLE "PUBLIC"."IMAGES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_8" PRIMARY KEY("MID", "RID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.IMAGES; -CREATE MEMORY TABLE "PUBLIC"."MESSAGES_PROPERTIES"( - "MESSAGE_ID" INTEGER NOT NULL, - "REPLY_ID" SMALLINT NOT NULL, - "PROPERTY_KEY" CHARACTER VARYING(255) NOT NULL, - "PROPERTY_VALUE" CHARACTER VARYING NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.MESSAGES_PROPERTIES; -CREATE MEMORY TABLE "PUBLIC"."MEON"( - "ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) DEFAULT ON NULL NOT NULL, - "USER_ID" INTEGER NOT NULL, - "LINK" CHARACTER(255) NOT NULL, - "NAME" CHARACTER(32) NOT NULL, - "ICO" SMALLINT DEFAULT NULL -); -ALTER TABLE "PUBLIC"."MEON" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_24" PRIMARY KEY("ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.MEON; -CREATE MEMORY TABLE "PUBLIC"."MESSAGES_ACCESS"( - "MESSAGE_ID" INTEGER NOT NULL, - "USER_ID" INTEGER NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.MESSAGES_ACCESS; -CREATE MEMORY TABLE "PUBLIC"."MESSAGES_TAGS"( - "MESSAGE_ID" INTEGER NOT NULL, - "TAG_ID" INTEGER NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.MESSAGES_TAGS; -CREATE MEMORY TABLE "PUBLIC"."USEROPTIONS"( - "USER_ID" INTEGER NOT NULL, - "JNOTIFY" TINYINT DEFAULT '1' NOT NULL, - "SUBSCR_ACTIVE" TINYINT DEFAULT '1' NOT NULL, - "XMPPXHTML" TINYINT DEFAULT '0' NOT NULL, - "SUBSCR_NOTIFY" TINYINT DEFAULT '1' NOT NULL, - "OFF_TS" TIMESTAMP, - "RECOMMENDATIONS" TINYINT DEFAULT '1' NOT NULL, - "PRIVACY_VIEW" TINYINT DEFAULT '1' NOT NULL, - "PRIVACY_REPLY" TINYINT DEFAULT '1' NOT NULL, - "PRIVACY_PM" TINYINT DEFAULT '1' NOT NULL, - "REPLIESVIEW" TINYINT DEFAULT '0' NOT NULL -); -ALTER TABLE "PUBLIC"."USEROPTIONS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_C0" PRIMARY KEY("USER_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.USEROPTIONS; -CREATE MEMORY TABLE "PUBLIC"."PM"( - "USER_ID" INTEGER NOT NULL, - "USER_ID_TO" INTEGER NOT NULL, - "TS" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL, - "TXT" CHARACTER VARYING NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.PM; -CREATE MEMORY TABLE "PUBLIC"."FOLLOWERS"( - "USER_ID" INTEGER DEFAULT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - "ACCT" VARCHAR(64) NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.FOLLOWERS; -CREATE MEMORY TABLE "PUBLIC"."SUBSCR_USERS"( - "USER_ID" INTEGER NOT NULL, - "SUSER_ID" INTEGER NOT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.SUBSCR_USERS; -CREATE MEMORY TABLE "PUBLIC"."MESSENGER"( - "USER_ID" INTEGER DEFAULT NULL, - "SENDER_ID" BIGINT NOT NULL, - "DISPLAY_NAME" CHARACTER(64) NOT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - "LOGINHASH" CHARACTER(36) DEFAULT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.MESSENGER; -CREATE MEMORY TABLE "PUBLIC"."PLACES"( - "PLACE_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) DEFAULT ON NULL NOT NULL, - "LAT" DECIMAL(10, 7) NOT NULL, - "LON" DECIMAL(10, 7) NOT NULL, - "NAME" CHARACTER(64) NOT NULL, - "DESCR" CHARACTER(255) DEFAULT NULL, - "URL" CHARACTER(128) DEFAULT NULL, - "USER_ID" INTEGER NOT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL -); -ALTER TABLE "PUBLIC"."PLACES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_8C" PRIMARY KEY("PLACE_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.PLACES; -CREATE MEMORY TABLE "PUBLIC"."PLACES_TAGS"( - "PLACE_ID" INTEGER NOT NULL, - "TAG_ID" INTEGER NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.PLACES_TAGS; -CREATE MEMORY TABLE "PUBLIC"."REPLIES"( - "MESSAGE_ID" INTEGER NOT NULL, - "REPLY_ID" SMALLINT NOT NULL, - "USER_ID" INTEGER NOT NULL, - "REPLYTO" SMALLINT DEFAULT '0' NOT NULL, - "TS" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL, - "ATTACH" CHARACTER(3), - "TXT" CHARACTER VARYING NOT NULL, - "UPDATED_AT" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL, - "USER_URI" VARCHAR(255) DEFAULT NULL, - "REPLY_URI" VARCHAR(255) DEFAULT NULL, - "HTML" TINYINT DEFAULT '0' NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.REPLIES; -CREATE INDEX "PUBLIC"."REPLY_URI_INDEX" ON "PUBLIC"."REPLIES"("REPLY_URI" NULLS FIRST); -CREATE MEMORY TABLE "PUBLIC"."MESSAGES_TXT"( - "MESSAGE_ID" INTEGER NOT NULL, - "REPLIESBY" CHARACTER VARYING(96) DEFAULT NULL, - "TXT" CHARACTER VARYING NOT NULL, - "UPDATED_AT" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL -); -ALTER TABLE "PUBLIC"."MESSAGES_TXT" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_3E" PRIMARY KEY("MESSAGE_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.MESSAGES_TXT; -CREATE MEMORY TABLE "PUBLIC"."MESSAGES"( - "MESSAGE_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) DEFAULT ON NULL NOT NULL, - "USER_ID" INTEGER NOT NULL, - "LANG" ENUM('en', 'ru', 'fr', 'fa', '__') DEFAULT '__' NOT NULL, - "TS" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, - "REPLIES" SMALLINT DEFAULT '0' NOT NULL, - "MAXREPLYID" SMALLINT DEFAULT '0' NOT NULL, - "PRIVACY" TINYINT DEFAULT '1' NOT NULL, - "READONLY" TINYINT DEFAULT '0' NOT NULL, - "ATTACH" CHARACTER(3), - "PLACE_ID" INTEGER DEFAULT NULL, - "LAT" DECIMAL(10, 7) DEFAULT NULL, - "LON" DECIMAL(10, 7) DEFAULT NULL, - "POPULAR" TINYINT DEFAULT '0' NOT NULL, - "HIDDEN" TINYINT DEFAULT '0' NOT NULL, - "LIKES" SMALLINT DEFAULT '0' NOT NULL, - "UPDATED" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL -); -ALTER TABLE "PUBLIC"."MESSAGES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_13" PRIMARY KEY("MESSAGE_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.MESSAGES; -CREATE MEMORY TABLE "PUBLIC"."VK"( - "USER_ID" INTEGER DEFAULT NULL, - "VK_ID" BIGINT NOT NULL, - "LOGINHASH" CHARACTER(36) DEFAULT NULL, - "ACCESS_TOKEN" CHARACTER VARYING(64), - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - "VK_NAME" CHARACTER(64) NOT NULL, - "VK_LINK" CHARACTER(64) NOT NULL, - "CROSSPOST" SMALLINT DEFAULT '1' NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.VK; -CREATE MEMORY TABLE "PUBLIC"."SUBSCR_MESSAGES"( - "MESSAGE_ID" INTEGER NOT NULL, - "SUSER_ID" INTEGER NOT NULL, - "LAST_READ_RID" SMALLINT DEFAULT '0' NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.SUBSCR_MESSAGES; -CREATE MEMORY TABLE "PUBLIC"."SUBSCR_TAGS"( - "TAG_ID" INTEGER NOT NULL, - "SUSER_ID" INTEGER NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.SUBSCR_TAGS; -CREATE MEMORY TABLE "PUBLIC"."USERS"( - "ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0 RESTART WITH 6 MINVALUE 0) DEFAULT ON NULL NOT NULL, - "NICK" VARCHAR(64) NOT NULL, - "PASSW" VARCHAR(32) NOT NULL, - "LANG" ENUM('en', 'ru', 'fr', 'fa', '__') DEFAULT '__' NOT NULL, - "BANNED" TINYINT DEFAULT '0' NOT NULL, - "LASTMESSAGE" TIMESTAMP(6) NOT NULL, - "LASTPM" INTEGER DEFAULT '0' NOT NULL, - "LASTPHOTO" INTEGER DEFAULT '0' NOT NULL, - "KARMA" SMALLINT DEFAULT '0' NOT NULL, - "LAST_SEEN" TIMESTAMP(6) -); -ALTER TABLE "PUBLIC"."USERS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_4" PRIMARY KEY("ID"); -CREATE MEMORY TABLE "PUBLIC"."TAGS"( - "TAG_ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1 RESTART WITH 3) DEFAULT ON NULL NOT NULL, - "SYNONYM_ID" INTEGER DEFAULT NULL, - "NAME" VARCHAR_IGNORECASE(70) DEFAULT NULL, - "TOP" BOOLEAN DEFAULT FALSE NOT NULL, - "NOINDEX" BOOLEAN DEFAULT FALSE NOT NULL, - "STAT_MESSAGES" INTEGER DEFAULT '0' NOT NULL, - "STAT_USERS" SMALLINT DEFAULT '0' NOT NULL -); -ALTER TABLE "PUBLIC"."TAGS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_27" PRIMARY KEY("TAG_ID"); -CREATE MEMORY TABLE "PUBLIC"."TAGS_IGNORE"( - "TAG_ID" INTEGER NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAGS_IGNORE; -CREATE MEMORY TABLE "PUBLIC"."TAGS_SYNONYMS"( - "NAME" CHARACTER(64) NOT NULL, - "CHANGETO" CHARACTER(64) NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.TAGS_SYNONYMS; -CREATE MEMORY TABLE "PUBLIC"."TELEGRAM"( - "USER_ID" INTEGER DEFAULT NULL, - "TG_ID" BIGINT NOT NULL, - "TG_NAME" CHARACTER(64) DEFAULT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - "LOGINHASH" CHARACTER(36) DEFAULT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.TELEGRAM; -CREATE MEMORY TABLE "PUBLIC"."TOP_IGNORE_MESSAGES"( - "MESSAGE_ID" INTEGER NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.TOP_IGNORE_MESSAGES; -CREATE MEMORY TABLE "PUBLIC"."TOP_IGNORE_TAGS"( - "TAG_ID" INTEGER NOT NULL -); -ALTER TABLE "PUBLIC"."TOP_IGNORE_TAGS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_7" PRIMARY KEY("TAG_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.TOP_IGNORE_TAGS; -CREATE MEMORY TABLE "PUBLIC"."TOP_IGNORE_USERS"( - "USER_ID" INTEGER NOT NULL -); -ALTER TABLE "PUBLIC"."TOP_IGNORE_USERS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_B2" PRIMARY KEY("USER_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.TOP_IGNORE_USERS; -CREATE MEMORY TABLE "PUBLIC"."FACEBOOK"( - "USER_ID" INTEGER DEFAULT NULL, - "FB_ID" BIGINT, - "LOGINHASH" CHARACTER(36) DEFAULT NULL, - "ACCESS_TOKEN" CHARACTER VARYING(64), - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - "FB_NAME" CHARACTER(64), - "FB_LINK" CHARACTER(255), - "CROSSPOST" TINYINT DEFAULT '1' NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.FACEBOOK; -CREATE MEMORY TABLE "PUBLIC"."TWITTER"( - "USER_ID" INTEGER NOT NULL, - "ACCESS_TOKEN" CHARACTER VARYING(64), - "ACCESS_TOKEN_SECRET" CHARACTER(64) NOT NULL, - "UNAME" CHARACTER(64) NOT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, - "CROSSPOST" TINYINT DEFAULT '1' NOT NULL -); -ALTER TABLE "PUBLIC"."TWITTER" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_F" PRIMARY KEY("USER_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.TWITTER; -CREATE MEMORY TABLE "PUBLIC"."USERS_SUBSCR"( - "USER_ID" INTEGER NOT NULL, - "CNT" SMALLINT DEFAULT '0' NOT NULL -); -ALTER TABLE "PUBLIC"."USERS_SUBSCR" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_BB" PRIMARY KEY("USER_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.USERS_SUBSCR; -CREATE MEMORY TABLE "PUBLIC"."USERSINFO"( - "USER_ID" INTEGER NOT NULL, - "JID" CHARACTER(32) DEFAULT NULL, - "FULLNAME" VARCHAR(32) DEFAULT NULL, - "COUNTRY" VARCHAR(32) DEFAULT NULL, - "URL" CHARACTER(64) DEFAULT NULL, - "GENDER" CHARACTER(32) DEFAULT NULL, - "BDAY" CHARACTER(10) DEFAULT NULL, - "DESCR" CHARACTER VARYING(255) DEFAULT NULL -); -ALTER TABLE "PUBLIC"."USERSINFO" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_BB6" PRIMARY KEY("USER_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.USERSINFO; -CREATE MEMORY TABLE "PUBLIC"."EMAILS"( - "USER_ID" INTEGER NOT NULL, - "EMAIL" VARCHAR(64) NOT NULL, - "SUBSCR_HOUR" TINYINT DEFAULT NULL -); -ALTER TABLE "PUBLIC"."EMAILS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_7A" PRIMARY KEY("EMAIL"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.EMAILS; -CREATE MEMORY TABLE "PUBLIC"."IOS"( - "USER_ID" INTEGER NOT NULL, - "TOKEN" VARCHAR(64) NOT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.IOS; -CREATE MEMORY TABLE "PUBLIC"."JIDS"( - "USER_ID" INTEGER DEFAULT NULL, - "JID" CHARACTER(64) NOT NULL, - "ACTIVE" TINYINT DEFAULT '1' NOT NULL, - "LOGINHASH" CHARACTER(36) DEFAULT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.JIDS; -CREATE MEMORY TABLE "PUBLIC"."LOGINS"( - "USER_ID" INTEGER NOT NULL, - "HASH" CHARACTER(16) NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.LOGINS; -CREATE MEMORY TABLE "PUBLIC"."PM_INROSTER"( - "USER_ID" INTEGER NOT NULL, - "JID" CHARACTER(64) NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.PM_INROSTER; -CREATE MEMORY TABLE "PUBLIC"."VERSION"( - "VERSION" BIGINT NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.VERSION; -CREATE MEMORY TABLE "PUBLIC"."WINPHONE"( - "USER_ID" INTEGER NOT NULL, - "URL" CHARACTER(255) NOT NULL, - "TS" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL -); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.WINPHONE; -CREATE MEMORY TABLE "PUBLIC"."WL_USERS"( - "USER_ID" INTEGER NOT NULL, - "WL_USER_ID" INTEGER NOT NULL -); -ALTER TABLE "PUBLIC"."WL_USERS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_A8" PRIMARY KEY("USER_ID", "WL_USER_ID"); --- 0 +/- SELECT COUNT(*) FROM PUBLIC.WL_USERS; -ALTER TABLE "PUBLIC"."MESSAGES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_131" CHECK("ATTACH" IN('jpg', 'mp4', 'png')) NOCHECK; -ALTER TABLE "PUBLIC"."REPLIES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_6C" CHECK("ATTACH" IN('jpg', 'mp4', 'png')) NOCHECK; -ALTER TABLE "PUBLIC"."LOGINS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_86" UNIQUE("USER_ID"); -ALTER TABLE "PUBLIC"."PM_INROSTER" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_5" UNIQUE("USER_ID", "JID"); -ALTER TABLE "PUBLIC"."REACTIONS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_6" UNIQUE("LIKE_ID"); -ALTER TABLE "PUBLIC"."IOS" ADD CONSTRAINT "PUBLIC"."TOKEN" UNIQUE("TOKEN"); -ALTER TABLE "PUBLIC"."SUBSCR_TAGS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_B" UNIQUE("TAG_ID", "SUSER_ID"); -ALTER TABLE "PUBLIC"."SUBSCR_USERS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_C" UNIQUE("USER_ID", "SUSER_ID"); -ALTER TABLE "PUBLIC"."MESSAGES_PROPERTIES" ADD CONSTRAINT "PUBLIC"."MESSAGE_KEY" UNIQUE("MESSAGE_ID", "REPLY_ID", "PROPERTY_KEY"); -ALTER TABLE "PUBLIC"."USERS" ADD CONSTRAINT "PUBLIC"."NICK" UNIQUE("NICK"); -ALTER TABLE "PUBLIC"."MESSAGES_TAGS" ADD CONSTRAINT "PUBLIC"."MESSAGE_ID_2" UNIQUE("MESSAGE_ID", "TAG_ID"); -ALTER TABLE "PUBLIC"."SUBSCR_MESSAGES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_6D" UNIQUE("MESSAGE_ID", "SUSER_ID"); -ALTER TABLE "PUBLIC"."JIDS" ADD CONSTRAINT "PUBLIC"."JID" UNIQUE("JID"); -ALTER TABLE "PUBLIC"."WINPHONE" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_EC" UNIQUE("URL"); -ALTER TABLE "PUBLIC"."VK" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_A" FOREIGN KEY("USER_ID") REFERENCES "PUBLIC"."USERS"("ID") NOCHECK; -ALTER TABLE "PUBLIC"."FAVORITES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_3" FOREIGN KEY("LIKE_ID") REFERENCES "PUBLIC"."REACTIONS"("LIKE_ID") NOCHECK; -ALTER TABLE "PUBLIC"."IOS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_1" FOREIGN KEY("USER_ID") REFERENCES "PUBLIC"."USERS"("ID") NOCHECK; -ALTER TABLE "PUBLIC"."MESSAGES" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_131A" FOREIGN KEY("USER_ID") REFERENCES "PUBLIC"."USERS"("ID") NOCHECK; -ALTER TABLE "PUBLIC"."FOLLOWERS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_D" FOREIGN KEY("USER_ID") REFERENCES "PUBLIC"."USERS"("ID") NOCHECK; -ALTER TABLE "PUBLIC"."JIDS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_22" FOREIGN KEY("USER_ID") REFERENCES "PUBLIC"."USERS"("ID") NOCHECK; -ALTER TABLE "PUBLIC"."EMAILS" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_7A1" FOREIGN KEY("USER_ID") REFERENCES "PUBLIC"."USERS"("ID") NOCHECK; -ALTER TABLE "PUBLIC"."PM_INROSTER" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_54" FOREIGN KEY("USER_ID") REFERENCES "PUBLIC"."USERS"("ID") NOCHECK; -ALTER TABLE "PUBLIC"."WINPHONE" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_ECD" FOREIGN KEY("USER_ID") REFERENCES "PUBLIC"."USERS"("ID") NOCHECK; diff --git a/src/main/resources/db/specific/h2/V1.24__fix_lastmessage.sql b/src/main/resources/db/specific/h2/V1.24__fix_lastmessage.sql deleted file mode 100644 index bcca2b50..00000000 --- a/src/main/resources/db/specific/h2/V1.24__fix_lastmessage.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE users ALTER COLUMN lastmessage SET NULL - diff --git a/src/main/resources/db/specific/h2/V1.26__case_insensitive_nick.sql b/src/main/resources/db/specific/h2/V1.26__case_insensitive_nick.sql deleted file mode 100644 index 3b17aa00..00000000 --- a/src/main/resources/db/specific/h2/V1.26__case_insensitive_nick.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE users ALTER COLUMN nick SET DATA TYPE VARCHAR_IGNORECASE(64) diff --git a/src/main/resources/db/specific/h2/V1.27__followers_unique.sql b/src/main/resources/db/specific/h2/V1.27__followers_unique.sql deleted file mode 100644 index e103d1a0..00000000 --- a/src/main/resources/db/specific/h2/V1.27__followers_unique.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE followers ADD UNIQUE (user_id, acct)
\ No newline at end of file diff --git a/src/main/resources/db/specific/h2/V1.35__case_insensitive_email_jid.sql b/src/main/resources/db/specific/h2/V1.35__case_insensitive_email_jid.sql deleted file mode 100644 index a20debf6..00000000 --- a/src/main/resources/db/specific/h2/V1.35__case_insensitive_email_jid.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE jids ALTER COLUMN jid SET DATA TYPE VARCHAR_IGNORECASE(255); -ALTER TABLE emails ALTER COLUMN email SET DATA TYPE VARCHAR_IGNORECASE(255) diff --git a/src/main/resources/db/specific/mariadb/V1.24__fix_lastmessage.sql b/src/main/resources/db/specific/mariadb/V1.24__fix_lastmessage.sql deleted file mode 100644 index 399abf01..00000000 --- a/src/main/resources/db/specific/mariadb/V1.24__fix_lastmessage.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE users MODIFY COLUMN lastmessage TIMESTAMP(6) NULL
\ No newline at end of file diff --git a/src/main/resources/db/specific/mariadb/V1.25__update_tokens_size.sql b/src/main/resources/db/specific/mariadb/V1.25__update_tokens_size.sql deleted file mode 100644 index 05eefe24..00000000 --- a/src/main/resources/db/specific/mariadb/V1.25__update_tokens_size.sql +++ /dev/null @@ -1,3 +0,0 @@ -ALTER TABLE vk MODIFY COLUMN access_token VARCHAR(255); -ALTER TABLE twitter MODIFY COLUMN access_token VARCHAR(255); -ALTER TABLE facebook MODIFY COLUMN access_token VARCHAR(255);
\ No newline at end of file diff --git a/src/main/resources/db/specific/mariadb/V1.27__followers_unique.sql b/src/main/resources/db/specific/mariadb/V1.27__followers_unique.sql deleted file mode 100644 index e103d1a0..00000000 --- a/src/main/resources/db/specific/mariadb/V1.27__followers_unique.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE followers ADD UNIQUE (user_id, acct)
\ No newline at end of file diff --git a/src/main/resources/db/specific/postgresql/V1.25__update_tokens_size.sql b/src/main/resources/db/specific/postgresql/V1.25__update_tokens_size.sql deleted file mode 100644 index a1c7bbac..00000000 --- a/src/main/resources/db/specific/postgresql/V1.25__update_tokens_size.sql +++ /dev/null @@ -1,3 +0,0 @@ -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/specific/sqlite/V1.22__schema.sql b/src/main/resources/db/specific/sqlite/V1.22__schema.sql deleted file mode 100644 index 072b2a1a..00000000 --- a/src/main/resources/db/specific/sqlite/V1.22__schema.sql +++ /dev/null @@ -1,377 +0,0 @@ -CREATE TABLE android ( - user_id INTEGER NOT NULL, - regid character varying(1024) NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id), - UNIQUE (regid) -); - -CREATE TABLE auth ( - user_id INTEGER, - protocol TEXT CHECK (protocol IN ('xmpp', 'email', 'sms')) NOT NULL, - account character varying(128) NOT NULL, - authcode character varying(8) NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE bl_tags ( - user_id bigint NOT NULL, - tag_id bigint NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id), - FOREIGN KEY (tag_id) REFERENCES tags(tag_id) -); - -CREATE TABLE bl_users ( - user_id bigint NOT NULL, - bl_user_id bigint NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - PRIMARY KEY (user_id, bl_user_id), - FOREIGN KEY (user_id) REFERENCES users(id), - FOREIGN KEY (bl_user_id) REFERENCES users(id) -); - -CREATE TABLE emails ( - user_id bigint NOT NULL, - email character varying(128) NOT NULL, - subscr_hour smallint, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE facebook ( - user_id bigint, - fb_id numeric, - loginhash character varying(36), - access_token character varying(255), - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - fb_name character varying(64), - fb_link character varying(255) NOT NULL, - crosspost boolean DEFAULT true NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE 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 '', - FOREIGN KEY (like_id) REFERENCES reactions(like_id) -); - -CREATE TABLE followers ( - user_id bigint, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - acct character varying(64) NOT NULL, - PRIMARY KEY (user_id) - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE 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, - PRIMARY KEY (mid, rid) -); - -CREATE TABLE ios ( - user_id bigint NOT NULL, - token character varying(64) NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id), - UNIQUE (token) -); - -CREATE TABLE 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 CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE logins ( - user_id bigint NOT NULL, - hash character varying(16) NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE mail ( - user_id INTEGER NOT NULL, - hash character varying(16) NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE meon ( - id INTEGER NOT NULL, - user_id bigint NOT NULL, - link character varying(255) NOT NULL, - name character varying(32) NOT NULL, - ico smallint, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE messages ( - message_id INTEGER PRIMARY KEY NOT NULL, - user_id bigint NOT NULL, - lang TEXT DEFAULT '__' NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - replies smallint DEFAULT (0) NOT NULL, - maxreplyid smallint DEFAULT (0) NOT NULL, - privacy smallint DEFAULT (1) NOT NULL, - readonly boolean DEFAULT false NOT NULL, - attach TEXT CHECK (attach IN ('jpg', 'mp4', 'png')), - place_id bigint, - lat numeric(10,7), - lon numeric(10,7), - popular smallint DEFAULT (0) NOT NULL, - hidden smallint DEFAULT (0) NOT NULL, - likes smallint DEFAULT (0) NOT NULL, - updated timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE messages_access ( - message_id INTEGER NOT NULL, - user_id bigint NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id), - FOREIGN KEY (message_id) REFERENCES messages(message_id) -); - -CREATE TABLE messages_properties ( - message_id INTEGER PRIMARY KEY NOT NULL, - reply_id smallint NOT NULL, - property_key character varying(255) NOT NULL, - property_value text NOT NULL, - UNIQUE (message_id, reply_id, property_key), - FOREIGN KEY (message_id) REFERENCES messages(message_id) -); - -CREATE TABLE messages_tags ( - message_id INTEGER NOT NULL, - tag_id bigint NOT NULL, - FOREIGN KEY (message_id) REFERENCES messages(message_id) -); - -CREATE TABLE messages_txt ( - message_id INTEGER NOT NULL, - repliesby text, - txt text NOT NULL, - updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (message_id) REFERENCES messages(message_id) -); - -CREATE TABLE places ( - place_id INTEGER PRIMARY KEY 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 CURRENT_TIMESTAMP NOT NULL -); - -CREATE TABLE places_tags ( - place_id INTEGER NOT NULL, - tag_id bigint NOT NULL, - FOREIGN KEY (place_id) REFERENCES places(place_id) -); - -CREATE TABLE pm ( - user_id bigint NOT NULL, - user_id_to bigint NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - txt text NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id), - FOREIGN KEY (user_id_to) REFERENCES users(id) -); - -CREATE TABLE pm_inroster ( - user_id bigint NOT NULL, - jid character varying(64) NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE reactions ( - like_id INTEGER PRIMARY KEY NOT NULL, - description character varying(100) NOT NULL -); - -CREATE TABLE replies ( - message_id bigint NOT NULL, - reply_id smallint NOT NULL, - user_id bigint NOT NULL, - replyto smallint DEFAULT (0) NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - attach TEXT CHECK (attach IN ('jpg', 'mp4', 'png')), - txt text NOT NULL, - updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - user_uri character varying(255) DEFAULT NULL, - reply_uri character varying(255) DEFAULT NULL, - html smallint DEFAULT '0' NOT NULL, - FOREIGN KEY (message_id) REFERENCES messages(message_id), - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE subscr_messages ( - message_id bigint NOT NULL, - suser_id bigint NOT NULL, - last_read_rid smallint DEFAULT 0 NOT NULL, - FOREIGN KEY (message_id) REFERENCES messages(message_id), - FOREIGN KEY (suser_id) REFERENCES users(id) -); - -CREATE TABLE subscr_tags ( - tag_id bigint NOT NULL, - suser_id bigint NOT NULL, - FOREIGN KEY (tag_id) REFERENCES tags(tag_id), - FOREIGN KEY (suser_id) REFERENCES users(id) -); - -CREATE TABLE subscr_users ( - user_id bigint NOT NULL, - suser_id bigint NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id), - FOREIGN KEY (suser_id) REFERENCES users(id) -); - -CREATE TABLE tags ( - tag_id INTEGER PRIMARY KEY NOT NULL, - synonym_id bigint, - name character varying(70) COLLATE NOCASE, - top boolean DEFAULT false NOT NULL, - noindex boolean DEFAULT false NOT NULL, - stat_messages bigint DEFAULT (0) NOT NULL, - stat_users smallint DEFAULT (0) NOT NULL, - FOREIGN KEY (synonym_id) REFERENCES tags(tag_id) -); - -CREATE TABLE tags_ignore ( - tag_id bigint NOT NULL, - FOREIGN KEY (tag_id) REFERENCES tags(tag_id) -); - -CREATE TABLE tags_synonyms ( - name character varying(64) NOT NULL, - changeto character varying(64) NOT NULL -); - -CREATE TABLE telegram ( - user_id bigint, - tg_id numeric NOT NULL, - tg_name character varying(64) NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - loginhash character varying(36), - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE top_ignore_messages ( - message_id bigint NOT NULL, - FOREIGN KEY (message_id) REFERENCES messages(message_id) -); - -CREATE TABLE top_ignore_tags ( - tag_id NOT NULL, - FOREIGN KEY (tag_id) REFERENCES tag(tag_id) -); - -CREATE TABLE top_ignore_users ( - user_id bigint NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE twitter ( - user_id INTEGER 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 CURRENT_TIMESTAMP NOT NULL, - crosspost boolean DEFAULT true NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE useroptions ( - user_id INTEGER 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, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE users ( - id bigint NOT NULL, - nick character varying(64) NOT NULL COLLATE NOCASE, - passw character varying(32) NOT NULL, - lang users_lang DEFAULT '__' NOT NULL, - banned smallint DEFAULT (0) NOT NULL, - lastmessage timestamp with time zone, - lastpm bigint DEFAULT (0) NOT NULL, - lastphoto bigint DEFAULT (0) NOT NULL, - karma smallint DEFAULT (0) NOT NULL, - last_seen timestamp with time zone, - PRIMARY KEY (id) -); - -CREATE TABLE users_subscr ( - user_id bigint NOT NULL, - cnt smallint DEFAULT (0) NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE 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, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE version ( - version numeric NOT NULL -); - -CREATE TABLE 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 CURRENT_TIMESTAMP NOT NULL, - vk_name character varying(64) NOT NULL, - vk_link character varying(64) NOT NULL, - crosspost smallint DEFAULT (1) NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE winphone ( - user_id bigint NOT NULL, - url character varying(255) NOT NULL, - ts timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) -); - -CREATE TABLE wl_users ( - user_id bigint NOT NULL, - wl_user_id bigint NOT NULL, - PRIMARY KEY (user_id, wl_user_id), - FOREIGN KEY (user_id) REFERENCES users(id), - FOREIGN KEY (wl_user_id) REFERENCES users(id) -); |