-- migrate:up CREATE TABLE public.entries ( id serial NOT NULL, uid varchar 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, PRIMARY KEY (id, created_at), CONSTRAINT fk_logic_group FOREIGN KEY (logic_group_id) REFERENCES public.logic_groups(id) ) PARTITION BY RANGE (created_at); CREATE INDEX index_entries_uid ON ONLY public.entries USING btree (uid); CREATE SCHEMA entries_partitions; CREATE TABLE entries_partitions.e2020 PARTITION OF public.entries FOR VALUES FROM ('2020-01-01') TO ('2021-01-01'); CREATE TABLE entries_partitions.e2021 PARTITION OF public.entries FOR VALUES FROM ('2021-01-01') TO ('2022-01-01'); CREATE TABLE entries_partitions.e2022 PARTITION OF public.entries FOR VALUES FROM ('2022-01-01') TO ('2023-01-01'); CREATE TABLE entries_partitions.e2023 PARTITION OF public.entries FOR VALUES FROM ('2023-01-01') TO ('2024-01-01'); CREATE TABLE entries_partitions.e2024 PARTITION OF public.entries FOR VALUES FROM ('2024-01-01') TO ('2025-01-01'); CREATE TABLE entries_partitions.e2025 PARTITION OF public.entries FOR VALUES FROM ('2025-01-01') TO ('2026-01-01'); CREATE TABLE entries_partitions.e2026 PARTITION OF public.entries FOR VALUES FROM ('2026-01-01') TO ('2027-01-01'); CREATE TABLE entries_partitions.e2027 PARTITION OF public.entries FOR VALUES FROM ('2027-01-01') TO ('2028-01-01'); CREATE TABLE entries_partitions.e2028 PARTITION OF public.entries FOR VALUES FROM ('2028-01-01') TO ('2029-01-01'); CREATE TABLE entries_partitions.e2029 PARTITION OF public.entries FOR VALUES FROM ('2029-01-01') TO ('2030-01-01'); 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;