diff --git a/build.rs b/build.rs index f1a9070..db285b4 100644 --- a/build.rs +++ b/build.rs @@ -29,4 +29,5 @@ fn main() { println!("cargo::rerun-if-changed=build.rs"); println!("cargo::rerun-if-changed=package.json"); println!("cargo::rerun-if-changed=frontend"); + println!("cargo:rerun-if-changed=migrations"); } diff --git a/db/migrations/20250205190533_create_sources_table.sql b/db/migrations/20250205190533_create_sources_table.sql deleted file mode 100644 index 36dac58..0000000 --- a/db/migrations/20250205190533_create_sources_table.sql +++ /dev/null @@ -1,13 +0,0 @@ --- migrate:up -CREATE TABLE public.sources ( - id serial PRIMARY KEY, - name character varying(20) NOT NULL, - uid character varying(8) NOT NULL, - uri character varying, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone - ); - --- migrate:down -DROP TABLE public.sources; diff --git a/db/schema.sql b/db/schema.sql deleted file mode 100644 index 825bf15..0000000 --- a/db/schema.sql +++ /dev/null @@ -1,861 +0,0 @@ -SET statement_timeout = 0; -SET lock_timeout = 0; -SET idle_in_transaction_session_timeout = 0; -SET transaction_timeout = 0; -SET client_encoding = 'UTF8'; -SET standard_conforming_strings = on; -SELECT pg_catalog.set_config('search_path', '', false); -SET check_function_bodies = false; -SET xmloption = content; -SET client_min_messages = warning; -SET row_security = off; - --- --- Name: entries_partitions; Type: SCHEMA; Schema: -; Owner: - --- - -CREATE SCHEMA entries_partitions; - - -SET default_tablespace = ''; - --- --- Name: entries; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.entries ( - id integer NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -) -PARTITION BY RANGE (created_at); - - --- --- Name: entries_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.entries_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: entries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.entries_id_seq OWNED BY public.entries.id; - - -SET default_table_access_method = heap; - --- --- Name: e2020; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2020 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2021; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2021 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2022; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2022 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2023; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2023 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2024; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2024 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2025; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2025 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2026; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2026 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2027; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2027 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2028; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2028 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2029; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2029 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: e2030; Type: TABLE; Schema: entries_partitions; Owner: - --- - -CREATE TABLE entries_partitions.e2030 ( - id integer DEFAULT nextval('public.entries_id_seq'::regclass) NOT NULL, - uid character varying NOT NULL, - desambiguator text NOT NULL, - text text, - logic_group_id integer NOT NULL, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: desambiguator_types; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.desambiguator_types ( - id integer NOT NULL, - name character varying(15) NOT NULL, - input_type character varying(15) NOT NULL, - placeholder character varying(30), - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: desambiguator_types_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.desambiguator_types_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: desambiguator_types_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.desambiguator_types_id_seq OWNED BY public.desambiguator_types.id; - - --- --- Name: logic_groups; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.logic_groups ( - id integer NOT NULL, - name character varying(20) NOT NULL, - uid character varying(8) NOT NULL, - uri character varying, - source_id integer, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone -); - - --- --- Name: logic_groups_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.logic_groups_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: logic_groups_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.logic_groups_id_seq OWNED BY public.logic_groups.id; - - --- --- Name: schema_migrations; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.schema_migrations ( - version character varying(128) NOT NULL -); - - --- --- Name: sources; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.sources ( - id integer NOT NULL, - name character varying(20) NOT NULL, - uid character varying(8) NOT NULL, - uri character varying, - created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - updated_at timestamp with time zone, - deleted_at timestamp with time zone, - desambiguator_type_id integer DEFAULT 1 NOT NULL -); - - --- --- Name: sources_id_seq; Type: SEQUENCE; Schema: public; Owner: - --- - -CREATE SEQUENCE public.sources_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - --- --- Name: sources_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - --- - -ALTER SEQUENCE public.sources_id_seq OWNED BY public.sources.id; - - --- --- Name: e2020; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2020 FOR VALUES FROM ('2020-01-01 00:00:00+00') TO ('2021-01-01 00:00:00+00'); - - --- --- Name: e2021; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2021 FOR VALUES FROM ('2021-01-01 00:00:00+00') TO ('2022-01-01 00:00:00+00'); - - --- --- Name: e2022; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2022 FOR VALUES FROM ('2022-01-01 00:00:00+00') TO ('2023-01-01 00:00:00+00'); - - --- --- Name: e2023; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2023 FOR VALUES FROM ('2023-01-01 00:00:00+00') TO ('2024-01-01 00:00:00+00'); - - --- --- Name: e2024; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2024 FOR VALUES FROM ('2024-01-01 00:00:00+00') TO ('2025-01-01 00:00:00+00'); - - --- --- Name: e2025; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2025 FOR VALUES FROM ('2025-01-01 00:00:00+00') TO ('2026-01-01 00:00:00+00'); - - --- --- Name: e2026; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2026 FOR VALUES FROM ('2026-01-01 00:00:00+00') TO ('2027-01-01 00:00:00+00'); - - --- --- Name: e2027; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2027 FOR VALUES FROM ('2027-01-01 00:00:00+00') TO ('2028-01-01 00:00:00+00'); - - --- --- Name: e2028; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2028 FOR VALUES FROM ('2028-01-01 00:00:00+00') TO ('2029-01-01 00:00:00+00'); - - --- --- Name: e2029; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2029 FOR VALUES FROM ('2029-01-01 00:00:00+00') TO ('2030-01-01 00:00:00+00'); - - --- --- Name: e2030; Type: TABLE ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY public.entries ATTACH PARTITION entries_partitions.e2030 FOR VALUES FROM ('2030-01-01 00:00:00+00') TO ('2031-01-01 00:00:00+00'); - - --- --- Name: desambiguator_types id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.desambiguator_types ALTER COLUMN id SET DEFAULT nextval('public.desambiguator_types_id_seq'::regclass); - - --- --- Name: entries id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.entries ALTER COLUMN id SET DEFAULT nextval('public.entries_id_seq'::regclass); - - --- --- Name: logic_groups id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.logic_groups ALTER COLUMN id SET DEFAULT nextval('public.logic_groups_id_seq'::regclass); - - --- --- Name: sources id; Type: DEFAULT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.sources ALTER COLUMN id SET DEFAULT nextval('public.sources_id_seq'::regclass); - - --- --- Name: entries entries_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.entries - ADD CONSTRAINT entries_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2020 e2020_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2020 - ADD CONSTRAINT e2020_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2021 e2021_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2021 - ADD CONSTRAINT e2021_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2022 e2022_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2022 - ADD CONSTRAINT e2022_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2023 e2023_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2023 - ADD CONSTRAINT e2023_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2024 e2024_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2024 - ADD CONSTRAINT e2024_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2025 e2025_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2025 - ADD CONSTRAINT e2025_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2026 e2026_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2026 - ADD CONSTRAINT e2026_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2027 e2027_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2027 - ADD CONSTRAINT e2027_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2028 e2028_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2028 - ADD CONSTRAINT e2028_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2029 e2029_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2029 - ADD CONSTRAINT e2029_pkey PRIMARY KEY (id, created_at); - - --- --- Name: e2030 e2030_pkey; Type: CONSTRAINT; Schema: entries_partitions; Owner: - --- - -ALTER TABLE ONLY entries_partitions.e2030 - ADD CONSTRAINT e2030_pkey PRIMARY KEY (id, created_at); - - --- --- Name: desambiguator_types desambiguator_types_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.desambiguator_types - ADD CONSTRAINT desambiguator_types_pkey PRIMARY KEY (id); - - --- --- Name: logic_groups logic_groups_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.logic_groups - ADD CONSTRAINT logic_groups_pkey PRIMARY KEY (id); - - --- --- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.schema_migrations - ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version); - - --- --- Name: sources sources_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.sources - ADD CONSTRAINT sources_pkey PRIMARY KEY (id); - - --- --- Name: index_entries_uid; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_entries_uid ON ONLY public.entries USING btree (uid); - - --- --- Name: e2020_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2020_uid_idx ON entries_partitions.e2020 USING btree (uid); - - --- --- Name: e2021_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2021_uid_idx ON entries_partitions.e2021 USING btree (uid); - - --- --- Name: e2022_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2022_uid_idx ON entries_partitions.e2022 USING btree (uid); - - --- --- Name: e2023_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2023_uid_idx ON entries_partitions.e2023 USING btree (uid); - - --- --- Name: e2024_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2024_uid_idx ON entries_partitions.e2024 USING btree (uid); - - --- --- Name: e2025_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2025_uid_idx ON entries_partitions.e2025 USING btree (uid); - - --- --- Name: e2026_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2026_uid_idx ON entries_partitions.e2026 USING btree (uid); - - --- --- Name: e2027_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2027_uid_idx ON entries_partitions.e2027 USING btree (uid); - - --- --- Name: e2028_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2028_uid_idx ON entries_partitions.e2028 USING btree (uid); - - --- --- Name: e2029_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2029_uid_idx ON entries_partitions.e2029 USING btree (uid); - - --- --- Name: e2030_uid_idx; Type: INDEX; Schema: entries_partitions; Owner: - --- - -CREATE INDEX e2030_uid_idx ON entries_partitions.e2030 USING btree (uid); - - --- --- Name: e2020_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2020_pkey; - - --- --- Name: e2020_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2020_uid_idx; - - --- --- Name: e2021_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2021_pkey; - - --- --- Name: e2021_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2021_uid_idx; - - --- --- Name: e2022_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2022_pkey; - - --- --- Name: e2022_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2022_uid_idx; - - --- --- Name: e2023_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2023_pkey; - - --- --- Name: e2023_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2023_uid_idx; - - --- --- Name: e2024_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2024_pkey; - - --- --- Name: e2024_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2024_uid_idx; - - --- --- Name: e2025_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2025_pkey; - - --- --- Name: e2025_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2025_uid_idx; - - --- --- Name: e2026_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2026_pkey; - - --- --- Name: e2026_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2026_uid_idx; - - --- --- Name: e2027_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2027_pkey; - - --- --- Name: e2027_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2027_uid_idx; - - --- --- Name: e2028_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2028_pkey; - - --- --- Name: e2028_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2028_uid_idx; - - --- --- Name: e2029_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2029_pkey; - - --- --- Name: e2029_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2029_uid_idx; - - --- --- Name: e2030_pkey; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.entries_pkey ATTACH PARTITION entries_partitions.e2030_pkey; - - --- --- Name: e2030_uid_idx; Type: INDEX ATTACH; Schema: entries_partitions; Owner: - --- - -ALTER INDEX public.index_entries_uid ATTACH PARTITION entries_partitions.e2030_uid_idx; - - --- --- Name: sources fk_desambiguator_type; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.sources - ADD CONSTRAINT fk_desambiguator_type FOREIGN KEY (desambiguator_type_id) REFERENCES public.desambiguator_types(id); - - --- --- Name: entries fk_logic_group; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE public.entries - ADD CONSTRAINT fk_logic_group FOREIGN KEY (logic_group_id) REFERENCES public.logic_groups(id); - - --- --- Name: logic_groups fk_source; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.logic_groups - ADD CONSTRAINT fk_source FOREIGN KEY (source_id) REFERENCES public.sources(id); - - --- --- PostgreSQL database dump complete --- - - --- --- Dbmate schema migrations --- - -INSERT INTO public.schema_migrations (version) VALUES - ('20250205190533'), - ('20250206220324'), - ('20250207152518'), - ('20250207174953'); diff --git a/migrations/20250415185052_initial.down.sql b/migrations/20250415185052_initial.down.sql new file mode 100644 index 0000000..d2f607c --- /dev/null +++ b/migrations/20250415185052_initial.down.sql @@ -0,0 +1 @@ +-- Add down migration script here diff --git a/migrations/20250415185052_initial.up.sql b/migrations/20250415185052_initial.up.sql new file mode 100644 index 0000000..0da0a53 --- /dev/null +++ b/migrations/20250415185052_initial.up.sql @@ -0,0 +1 @@ +-- Add up migration script here diff --git a/migrations/20250415185421_create_table_sources.down.sql b/migrations/20250415185421_create_table_sources.down.sql new file mode 100644 index 0000000..fffbf4c --- /dev/null +++ b/migrations/20250415185421_create_table_sources.down.sql @@ -0,0 +1,2 @@ +-- Add down migration script here +DROP TABLE public.sources; diff --git a/migrations/20250415185421_create_table_sources.up.sql b/migrations/20250415185421_create_table_sources.up.sql new file mode 100644 index 0000000..1b31442 --- /dev/null +++ b/migrations/20250415185421_create_table_sources.up.sql @@ -0,0 +1,10 @@ +-- Add up migration script here +CREATE TABLE public.sources ( + id serial PRIMARY KEY, + name character varying(20) NOT NULL, + uid character varying(8) NOT NULL, + uri character varying, + created_at timestamp WITH time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, + updated_at timestamp WITH time zone, + deleted_at timestamp WITH time zone +); diff --git a/migrations/20250415185456_create_table_logic_groups.down.sql b/migrations/20250415185456_create_table_logic_groups.down.sql new file mode 100644 index 0000000..00f3474 --- /dev/null +++ b/migrations/20250415185456_create_table_logic_groups.down.sql @@ -0,0 +1,2 @@ +-- Add down migration script here +DROP TABLE public.logic_groups; diff --git a/db/migrations/20250206220324_create_logic_groups_table.sql b/migrations/20250415185456_create_table_logic_groups.up.sql similarity index 87% rename from db/migrations/20250206220324_create_logic_groups_table.sql rename to migrations/20250415185456_create_table_logic_groups.up.sql index 2537c20..f3632d2 100644 --- a/db/migrations/20250206220324_create_logic_groups_table.sql +++ b/migrations/20250415185456_create_table_logic_groups.up.sql @@ -1,4 +1,4 @@ --- migrate:up +-- Add up migration script here CREATE TABLE public.logic_groups ( id serial PRIMARY KEY, name character varying(20) NOT NULL, @@ -10,6 +10,3 @@ CREATE TABLE public.logic_groups ( deleted_at timestamp WITH time zone, CONSTRAINT fk_source FOREIGN KEY (source_id) REFERENCES public.sources(id) ); - --- migrate:down -DROP TABLE public.logic_groups; diff --git a/migrations/20250415190857_create_table_desambiguator_types.down.sql b/migrations/20250415190857_create_table_desambiguator_types.down.sql new file mode 100644 index 0000000..d2f607c --- /dev/null +++ b/migrations/20250415190857_create_table_desambiguator_types.down.sql @@ -0,0 +1 @@ +-- Add down migration script here diff --git a/db/migrations/20250207152518_add_table_desambiguator_types.sql b/migrations/20250415190857_create_table_desambiguator_types.up.sql similarity index 77% rename from db/migrations/20250207152518_add_table_desambiguator_types.sql rename to migrations/20250415190857_create_table_desambiguator_types.up.sql index b311997..1f624d0 100644 --- a/db/migrations/20250207152518_add_table_desambiguator_types.sql +++ b/migrations/20250415190857_create_table_desambiguator_types.up.sql @@ -1,4 +1,4 @@ --- migrate:up +-- Add up migration script here CREATE TABLE public.desambiguator_types( id serial PRIMARY KEY, name varchar(15) NOT NULL, @@ -24,12 +24,3 @@ ALTER TABLE public.sources ADD CONSTRAINT fk_desambiguator_type FOREIGN KEY (desambiguator_type_id) REFERENCES public.desambiguator_types(id); - --- migrate:down -ALTER TABLE - public.sources DROP CONSTRAINT fk_desambiguator_type; - -ALTER TABLE - public.sources DROP COLUMN desambiguator_type_id; - -DROP TABLE public.desambiguator_types; diff --git a/migrations/20250415190938_create_table_entries.down.sql b/migrations/20250415190938_create_table_entries.down.sql new file mode 100644 index 0000000..14a019d --- /dev/null +++ b/migrations/20250415190938_create_table_entries.down.sql @@ -0,0 +1,4 @@ +-- Add down migration script here +DROP TABLE public.entries; + +DROP schema entries_partitions; diff --git a/db/migrations/20250207174953_add_table_entries.sql b/migrations/20250415190938_create_table_entries.up.sql similarity index 95% rename from db/migrations/20250207174953_add_table_entries.sql rename to migrations/20250415190938_create_table_entries.up.sql index a0fc42e..bfd6126 100644 --- a/db/migrations/20250207174953_add_table_entries.sql +++ b/migrations/20250415190938_create_table_entries.up.sql @@ -1,4 +1,4 @@ --- migrate:up +-- Add up migration script here CREATE TABLE public.entries ( id serial NOT NULL, uid varchar NOT NULL, @@ -70,8 +70,3 @@ CREATE TABLE entries_partitions.e2030 PARTITION OF public.entries FOR VALUES FROM ('2030-01-01') TO ('2031-01-01'); - --- migrate:down -DROP TABLE public.entries; - -DROP schema entries_partitions; diff --git a/src/error.rs b/src/error.rs index afdbddf..5bef9fb 100644 --- a/src/error.rs +++ b/src/error.rs @@ -31,6 +31,9 @@ pub enum Error { #[error(transparent)] DatabaseOperation(#[from] sqlx::Error), + #[error(transparent)] + Migration(#[from] sqlx::migrate::MigrateError), + #[error(transparent)] Config(#[from] figment::Error), diff --git a/src/main.rs b/src/main.rs index 7b88117..6f3057e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -38,6 +38,8 @@ async fn main() -> Result<()> { .connect(&config.db.generate_db_string(false)?) .await?; + sqlx::migrate!("./migrations").run(&pool).await?; + let (tx_state, tx_layer) = Tx::setup(pool); let app = router::new()