X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/38bcc001e307a4ed32ce4623f2992d1c8c7c3738..b4146947ad17f11c963ee8ea161cfe33948b67c9:/db/structure.sql?ds=inline diff --git a/db/structure.sql b/db/structure.sql index ba60918f0..f9e588b3c 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -176,6 +176,63 @@ CREATE FUNCTION public.api_rate_limit(user_id bigint) RETURNS integer $$; +-- +-- Name: api_size_limit(bigint); Type: FUNCTION; Schema: public; Owner: - +-- + +CREATE FUNCTION public.api_size_limit(user_id bigint) RETURNS bigint + LANGUAGE plpgsql STABLE + AS $$ + DECLARE + min_size_limit int8 := 10000000; + initial_size_limit int8 := 30000000; + max_size_limit int8 := 5400000000; + days_to_max_size_limit int4 := 28; + importer_size_limit int8 := 5400000000; + moderator_size_limit int8 := 5400000000; + roles text[]; + last_block timestamp without time zone; + first_change timestamp without time zone; + active_reports int4; + time_since_first_change double precision; + size_limit int8; + BEGIN + SELECT ARRAY_AGG(user_roles.role) INTO STRICT roles FROM user_roles WHERE user_roles.user_id = api_size_limit.user_id; + + IF 'moderator' = ANY(roles) THEN + size_limit := moderator_size_limit; + ELSIF 'importer' = ANY(roles) THEN + size_limit := importer_size_limit; + ELSE + SELECT user_blocks.created_at INTO last_block FROM user_blocks WHERE user_blocks.user_id = api_size_limit.user_id ORDER BY user_blocks.created_at DESC LIMIT 1; + + IF FOUND THEN + SELECT changesets.created_at INTO first_change FROM changesets WHERE changesets.user_id = api_size_limit.user_id AND changesets.created_at > last_block ORDER BY changesets.created_at LIMIT 1; + ELSE + SELECT changesets.created_at INTO first_change FROM changesets WHERE changesets.user_id = api_size_limit.user_id ORDER BY changesets.created_at LIMIT 1; + END IF; + + IF NOT FOUND THEN + first_change := CURRENT_TIMESTAMP AT TIME ZONE 'UTC'; + END IF; + + SELECT COUNT(*) INTO STRICT active_reports + FROM issues INNER JOIN reports ON reports.issue_id = issues.id + WHERE issues.reported_user_id = api_size_limit.user_id AND issues.status = 'open' AND reports.updated_at >= COALESCE(issues.resolved_at, '1970-01-01'); + + time_since_first_change := EXTRACT(EPOCH FROM CURRENT_TIMESTAMP AT TIME ZONE 'UTC' - first_change); + + size_limit := max_size_limit * POWER(time_since_first_change, 2) / POWER(days_to_max_size_limit * 24 * 60 * 60, 2); + size_limit := GREATEST(initial_size_limit, LEAST(max_size_limit, FLOOR(size_limit))); + size_limit := size_limit / POWER(2, active_reports); + size_limit := GREATEST(min_size_limit, LEAST(max_size_limit, size_limit)); + END IF; + + RETURN size_limit; + END; + $$; + + SET default_tablespace = ''; SET default_table_access_method = heap; @@ -415,51 +472,6 @@ CREATE TABLE public.changesets_subscribers ( ); --- --- Name: client_applications; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.client_applications ( - id integer NOT NULL, - name character varying, - url character varying, - support_url character varying, - callback_url character varying, - key character varying(50), - secret character varying(50), - user_id integer, - created_at timestamp without time zone, - updated_at timestamp without time zone, - allow_read_prefs boolean DEFAULT false NOT NULL, - allow_write_prefs boolean DEFAULT false NOT NULL, - allow_write_diary boolean DEFAULT false NOT NULL, - allow_write_api boolean DEFAULT false NOT NULL, - allow_read_gpx boolean DEFAULT false NOT NULL, - allow_write_gpx boolean DEFAULT false NOT NULL, - allow_write_notes boolean DEFAULT false NOT NULL -); - - --- --- Name: client_applications_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.client_applications_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: client_applications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.client_applications_id_seq OWNED BY public.client_applications.id; - - -- -- Name: current_node_tags; Type: TABLE; Schema: public; Owner: - -- @@ -951,7 +963,8 @@ CREATE TABLE public.messages ( to_user_id bigint NOT NULL, to_user_visible boolean DEFAULT true NOT NULL, from_user_visible boolean DEFAULT true NOT NULL, - body_format public.format_enum DEFAULT 'markdown'::public.format_enum NOT NULL + body_format public.format_enum DEFAULT 'markdown'::public.format_enum NOT NULL, + muted boolean DEFAULT false NOT NULL ); @@ -1186,38 +1199,6 @@ CREATE SEQUENCE public.oauth_applications_id_seq ALTER SEQUENCE public.oauth_applications_id_seq OWNED BY public.oauth_applications.id; --- --- Name: oauth_nonces; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.oauth_nonces ( - id bigint NOT NULL, - nonce character varying, - "timestamp" integer, - created_at timestamp without time zone, - updated_at timestamp without time zone -); - - --- --- Name: oauth_nonces_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.oauth_nonces_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: oauth_nonces_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.oauth_nonces_id_seq OWNED BY public.oauth_nonces.id; - - -- -- Name: oauth_openid_requests; Type: TABLE; Schema: public; Owner: - -- @@ -1248,63 +1229,14 @@ CREATE SEQUENCE public.oauth_openid_requests_id_seq ALTER SEQUENCE public.oauth_openid_requests_id_seq OWNED BY public.oauth_openid_requests.id; --- --- Name: oauth_tokens; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.oauth_tokens ( - id integer NOT NULL, - user_id integer, - type character varying(20), - client_application_id integer, - token character varying(50), - secret character varying(50), - authorized_at timestamp without time zone, - invalidated_at timestamp without time zone, - created_at timestamp without time zone, - updated_at timestamp without time zone, - allow_read_prefs boolean DEFAULT false NOT NULL, - allow_write_prefs boolean DEFAULT false NOT NULL, - allow_write_diary boolean DEFAULT false NOT NULL, - allow_write_api boolean DEFAULT false NOT NULL, - allow_read_gpx boolean DEFAULT false NOT NULL, - allow_write_gpx boolean DEFAULT false NOT NULL, - callback_url character varying, - verifier character varying(20), - scope character varying, - valid_to timestamp without time zone, - allow_write_notes boolean DEFAULT false NOT NULL -); - - --- --- Name: oauth_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.oauth_tokens_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: oauth_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.oauth_tokens_id_seq OWNED BY public.oauth_tokens.id; - - -- -- Name: redactions; Type: TABLE; Schema: public; Owner: - -- CREATE TABLE public.redactions ( id integer NOT NULL, - title character varying, - description text, + title character varying NOT NULL, + description text NOT NULL, created_at timestamp without time zone, updated_at timestamp without time zone, user_id bigint NOT NULL, @@ -1430,7 +1362,8 @@ CREATE TABLE public.user_blocks ( revoker_id bigint, created_at timestamp without time zone, updated_at timestamp without time zone, - reason_format public.format_enum DEFAULT 'markdown'::public.format_enum NOT NULL + reason_format public.format_enum DEFAULT 'markdown'::public.format_enum NOT NULL, + deactivates_at timestamp without time zone ); @@ -1454,6 +1387,38 @@ CREATE SEQUENCE public.user_blocks_id_seq ALTER SEQUENCE public.user_blocks_id_seq OWNED BY public.user_blocks.id; +-- +-- Name: user_mutes; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.user_mutes ( + id bigint NOT NULL, + owner_id bigint NOT NULL, + subject_id bigint NOT NULL, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL +); + + +-- +-- Name: user_mutes_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.user_mutes_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: user_mutes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.user_mutes_id_seq OWNED BY public.user_mutes.id; + + -- -- Name: user_preferences; Type: TABLE; Schema: public; Owner: - -- @@ -1499,38 +1464,6 @@ CREATE SEQUENCE public.user_roles_id_seq ALTER SEQUENCE public.user_roles_id_seq OWNED BY public.user_roles.id; --- --- Name: user_tokens; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.user_tokens ( - id bigint NOT NULL, - user_id bigint NOT NULL, - token character varying NOT NULL, - expiry timestamp without time zone NOT NULL, - referer text -); - - --- --- Name: user_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.user_tokens_id_seq - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: user_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.user_tokens_id_seq OWNED BY public.user_tokens.id; - - -- -- Name: users; Type: TABLE; Schema: public; Owner: - -- @@ -1564,7 +1497,9 @@ CREATE TABLE public.users ( image_use_gravatar boolean DEFAULT false NOT NULL, auth_provider character varying, home_tile bigint, - tou_agreed timestamp without time zone + tou_agreed timestamp without time zone, + diary_comments_count integer DEFAULT 0, + note_comments_count integer DEFAULT 0 ); @@ -1667,13 +1602,6 @@ ALTER TABLE ONLY public.changeset_comments ALTER COLUMN id SET DEFAULT nextval(' ALTER TABLE ONLY public.changesets ALTER COLUMN id SET DEFAULT nextval('public.changesets_id_seq'::regclass); --- --- Name: client_applications id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.client_applications ALTER COLUMN id SET DEFAULT nextval('public.client_applications_id_seq'::regclass); - - -- -- Name: current_nodes id; Type: DEFAULT; Schema: public; Owner: - -- @@ -1793,13 +1721,6 @@ ALTER TABLE ONLY public.oauth_access_tokens ALTER COLUMN id SET DEFAULT nextval( ALTER TABLE ONLY public.oauth_applications ALTER COLUMN id SET DEFAULT nextval('public.oauth_applications_id_seq'::regclass); --- --- Name: oauth_nonces id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.oauth_nonces ALTER COLUMN id SET DEFAULT nextval('public.oauth_nonces_id_seq'::regclass); - - -- -- Name: oauth_openid_requests id; Type: DEFAULT; Schema: public; Owner: - -- @@ -1807,13 +1728,6 @@ ALTER TABLE ONLY public.oauth_nonces ALTER COLUMN id SET DEFAULT nextval('public ALTER TABLE ONLY public.oauth_openid_requests ALTER COLUMN id SET DEFAULT nextval('public.oauth_openid_requests_id_seq'::regclass); --- --- Name: oauth_tokens id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.oauth_tokens ALTER COLUMN id SET DEFAULT nextval('public.oauth_tokens_id_seq'::regclass); - - -- -- Name: redactions id; Type: DEFAULT; Schema: public; Owner: - -- @@ -1836,17 +1750,17 @@ ALTER TABLE ONLY public.user_blocks ALTER COLUMN id SET DEFAULT nextval('public. -- --- Name: user_roles id; Type: DEFAULT; Schema: public; Owner: - +-- Name: user_mutes id; Type: DEFAULT; Schema: public; Owner: - -- -ALTER TABLE ONLY public.user_roles ALTER COLUMN id SET DEFAULT nextval('public.user_roles_id_seq'::regclass); +ALTER TABLE ONLY public.user_mutes ALTER COLUMN id SET DEFAULT nextval('public.user_mutes_id_seq'::regclass); -- --- Name: user_tokens id; Type: DEFAULT; Schema: public; Owner: - +-- Name: user_roles id; Type: DEFAULT; Schema: public; Owner: - -- -ALTER TABLE ONLY public.user_tokens ALTER COLUMN id SET DEFAULT nextval('public.user_tokens_id_seq'::regclass); +ALTER TABLE ONLY public.user_roles ALTER COLUMN id SET DEFAULT nextval('public.user_roles_id_seq'::regclass); -- @@ -1920,14 +1834,6 @@ ALTER TABLE ONLY public.changesets ADD CONSTRAINT changesets_pkey PRIMARY KEY (id); --- --- Name: client_applications client_applications_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.client_applications - ADD CONSTRAINT client_applications_pkey PRIMARY KEY (id); - - -- -- Name: current_node_tags current_node_tags_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2136,14 +2042,6 @@ ALTER TABLE ONLY public.oauth_applications ADD CONSTRAINT oauth_applications_pkey PRIMARY KEY (id); --- --- Name: oauth_nonces oauth_nonces_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.oauth_nonces - ADD CONSTRAINT oauth_nonces_pkey PRIMARY KEY (id); - - -- -- Name: oauth_openid_requests oauth_openid_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2152,14 +2050,6 @@ ALTER TABLE ONLY public.oauth_openid_requests ADD CONSTRAINT oauth_openid_requests_pkey PRIMARY KEY (id); --- --- Name: oauth_tokens oauth_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.oauth_tokens - ADD CONSTRAINT oauth_tokens_pkey PRIMARY KEY (id); - - -- -- Name: redactions redactions_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2216,6 +2106,14 @@ ALTER TABLE ONLY public.user_blocks ADD CONSTRAINT user_blocks_pkey PRIMARY KEY (id); +-- +-- Name: user_mutes user_mutes_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.user_mutes + ADD CONSTRAINT user_mutes_pkey PRIMARY KEY (id); + + -- -- Name: user_preferences user_preferences_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2232,14 +2130,6 @@ ALTER TABLE ONLY public.user_roles ADD CONSTRAINT user_roles_pkey PRIMARY KEY (id); --- --- Name: user_tokens user_tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.user_tokens - ADD CONSTRAINT user_tokens_pkey PRIMARY KEY (id); - - -- -- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2524,20 +2414,6 @@ CREATE INDEX index_changesets_subscribers_on_changeset_id ON public.changesets_s CREATE UNIQUE INDEX index_changesets_subscribers_on_subscriber_id_and_changeset_id ON public.changesets_subscribers USING btree (subscriber_id, changeset_id); --- --- Name: index_client_applications_on_key; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX index_client_applications_on_key ON public.client_applications USING btree (key); - - --- --- Name: index_client_applications_on_user_id; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_client_applications_on_user_id ON public.client_applications USING btree (user_id); - - -- -- Name: index_diary_entry_subscriptions_on_diary_entry_id; Type: INDEX; Schema: public; Owner: - -- @@ -2685,13 +2561,6 @@ CREATE INDEX index_oauth_applications_on_owner_type_and_owner_id ON public.oauth CREATE UNIQUE INDEX index_oauth_applications_on_uid ON public.oauth_applications USING btree (uid); --- --- Name: index_oauth_nonces_on_nonce_and_timestamp; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX index_oauth_nonces_on_nonce_and_timestamp ON public.oauth_nonces USING btree (nonce, "timestamp"); - - -- -- Name: index_oauth_openid_requests_on_access_grant_id; Type: INDEX; Schema: public; Owner: - -- @@ -2700,38 +2569,38 @@ CREATE INDEX index_oauth_openid_requests_on_access_grant_id ON public.oauth_open -- --- Name: index_oauth_tokens_on_token; Type: INDEX; Schema: public; Owner: - +-- Name: index_reports_on_issue_id; Type: INDEX; Schema: public; Owner: - -- -CREATE UNIQUE INDEX index_oauth_tokens_on_token ON public.oauth_tokens USING btree (token); +CREATE INDEX index_reports_on_issue_id ON public.reports USING btree (issue_id); -- --- Name: index_oauth_tokens_on_user_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_reports_on_user_id; Type: INDEX; Schema: public; Owner: - -- -CREATE INDEX index_oauth_tokens_on_user_id ON public.oauth_tokens USING btree (user_id); +CREATE INDEX index_reports_on_user_id ON public.reports USING btree (user_id); -- --- Name: index_reports_on_issue_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_user_blocks_on_creator_id_and_id; Type: INDEX; Schema: public; Owner: - -- -CREATE INDEX index_reports_on_issue_id ON public.reports USING btree (issue_id); +CREATE INDEX index_user_blocks_on_creator_id_and_id ON public.user_blocks USING btree (creator_id, id); -- --- Name: index_reports_on_user_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_user_blocks_on_user_id; Type: INDEX; Schema: public; Owner: - -- -CREATE INDEX index_reports_on_user_id ON public.reports USING btree (user_id); +CREATE INDEX index_user_blocks_on_user_id ON public.user_blocks USING btree (user_id); -- --- Name: index_user_blocks_on_user_id; Type: INDEX; Schema: public; Owner: - +-- Name: index_user_mutes_on_owner_id_and_subject_id; Type: INDEX; Schema: public; Owner: - -- -CREATE INDEX index_user_blocks_on_user_id ON public.user_blocks USING btree (user_id); +CREATE UNIQUE INDEX index_user_mutes_on_owner_id_and_subject_id ON public.user_mutes USING btree (owner_id, subject_id); -- @@ -2846,20 +2715,6 @@ CREATE INDEX user_id_idx ON public.friends USING btree (friend_user_id); CREATE UNIQUE INDEX user_roles_id_role_unique ON public.user_roles USING btree (user_id, role); --- --- Name: user_tokens_token_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX user_tokens_token_idx ON public.user_tokens USING btree (token); - - --- --- Name: user_tokens_user_id_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX user_tokens_user_id_idx ON public.user_tokens USING btree (user_id); - - -- -- Name: users_auth_idx; Type: INDEX; Schema: public; Owner: - -- @@ -2868,17 +2723,17 @@ CREATE UNIQUE INDEX users_auth_idx ON public.users USING btree (auth_provider, a -- --- Name: users_display_name_idx; Type: INDEX; Schema: public; Owner: - +-- Name: users_display_name_canonical_idx; Type: INDEX; Schema: public; Owner: - -- -CREATE UNIQUE INDEX users_display_name_idx ON public.users USING btree (display_name); +CREATE INDEX users_display_name_canonical_idx ON public.users USING btree (lower(NORMALIZE(display_name, NFKC))); -- --- Name: users_display_name_lower_idx; Type: INDEX; Schema: public; Owner: - +-- Name: users_display_name_idx; Type: INDEX; Schema: public; Owner: - -- -CREATE INDEX users_display_name_lower_idx ON public.users USING btree (lower((display_name)::text)); +CREATE UNIQUE INDEX users_display_name_idx ON public.users USING btree (display_name); -- @@ -2971,14 +2826,6 @@ ALTER TABLE ONLY public.changesets ADD CONSTRAINT changesets_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id); --- --- Name: client_applications client_applications_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.client_applications - ADD CONSTRAINT client_applications_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id); - - -- -- Name: current_node_tags current_node_tags_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3107,6 +2954,14 @@ ALTER TABLE ONLY public.oauth_access_grants ADD CONSTRAINT fk_rails_330c32d8d9 FOREIGN KEY (resource_owner_id) REFERENCES public.users(id) NOT VALID; +-- +-- Name: user_mutes fk_rails_591dad3359; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.user_mutes + ADD CONSTRAINT fk_rails_591dad3359 FOREIGN KEY (owner_id) REFERENCES public.users(id); + + -- -- Name: oauth_access_tokens fk_rails_732cb83ab7; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3155,6 +3010,14 @@ ALTER TABLE ONLY public.oauth_applications ADD CONSTRAINT fk_rails_cc886e315a FOREIGN KEY (owner_id) REFERENCES public.users(id) NOT VALID; +-- +-- Name: user_mutes fk_rails_e9dd4fb6c3; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.user_mutes + ADD CONSTRAINT fk_rails_e9dd4fb6c3 FOREIGN KEY (subject_id) REFERENCES public.users(id); + + -- -- Name: oauth_access_tokens fk_rails_ee63f25419; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3299,22 +3162,6 @@ ALTER TABLE ONLY public.note_comments ADD CONSTRAINT note_comments_note_id_fkey FOREIGN KEY (note_id) REFERENCES public.notes(id); --- --- Name: oauth_tokens oauth_tokens_client_application_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.oauth_tokens - ADD CONSTRAINT oauth_tokens_client_application_id_fkey FOREIGN KEY (client_application_id) REFERENCES public.client_applications(id); - - --- --- Name: oauth_tokens oauth_tokens_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.oauth_tokens - ADD CONSTRAINT oauth_tokens_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id); - - -- -- Name: redactions redactions_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3419,14 +3266,6 @@ ALTER TABLE ONLY public.user_roles ADD CONSTRAINT user_roles_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id); --- --- Name: user_tokens user_tokens_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.user_tokens - ADD CONSTRAINT user_tokens_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id); - - -- -- Name: way_nodes way_nodes_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -3510,10 +3349,23 @@ INSERT INTO "schema_migrations" (version) VALUES ('23'), ('22'), ('21'), +('20240822121603'), +('20240813070506'), +('20240724194738'), +('20240618193051'), +('20240605134916'), +('20240405083825'), +('20240307181018'), +('20240307180830'), +('20240228205723'), +('20240117185445'), +('20231213182102'), ('20231206141457'), ('20231117170422'), ('20231101222146'), ('20231029151516'), +('20231010203028'), +('20231010201451'), ('20231010194809'), ('20231007141103'), ('20230830115220'), @@ -3590,3 +3442,4 @@ INSERT INTO "schema_migrations" (version) VALUES ('11'), ('10'), ('1'); +