diff --git a/app/models/upload_media_asset.rb b/app/models/upload_media_asset.rb new file mode 100644 index 000000000..9ff3b3a6c --- /dev/null +++ b/app/models/upload_media_asset.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +class UploadMediaAsset < ApplicationRecord + belongs_to :upload + belongs_to :media_asset +end diff --git a/db/migrate/20220124195900_add_upload_media_assets.rb b/db/migrate/20220124195900_add_upload_media_assets.rb new file mode 100644 index 000000000..7b6fce66e --- /dev/null +++ b/db/migrate/20220124195900_add_upload_media_assets.rb @@ -0,0 +1,12 @@ +class AddUploadMediaAssets < ActiveRecord::Migration[7.0] + def change + create_table :upload_media_assets do |t| + t.timestamps null: false + t.belongs_to :upload, null: false + t.belongs_to :media_asset, null: false + end + + add_foreign_key :upload_media_assets, :uploads, deferrable: :deferred + add_foreign_key :upload_media_assets, :media_assets, deferrable: :deferred + end +end diff --git a/db/structure.sql b/db/structure.sql index 21e65aa6e..3589e5e61 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1906,6 +1906,38 @@ CREATE SEQUENCE public.tags_id_seq ALTER SEQUENCE public.tags_id_seq OWNED BY public.tags.id; +-- +-- Name: upload_media_assets; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.upload_media_assets ( + id bigint NOT NULL, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL, + upload_id bigint NOT NULL, + media_asset_id bigint NOT NULL +); + + +-- +-- Name: upload_media_assets_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.upload_media_assets_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: upload_media_assets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.upload_media_assets_id_seq OWNED BY public.upload_media_assets.id; + + -- -- Name: uploads; Type: TABLE; Schema: public; Owner: - -- @@ -2517,6 +2549,13 @@ ALTER TABLE ONLY public.tag_implications ALTER COLUMN id SET DEFAULT nextval('pu ALTER TABLE ONLY public.tags ALTER COLUMN id SET DEFAULT nextval('public.tags_id_seq'::regclass); +-- +-- Name: upload_media_assets id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.upload_media_assets ALTER COLUMN id SET DEFAULT nextval('public.upload_media_assets_id_seq'::regclass); + + -- -- Name: uploads id; Type: DEFAULT; Schema: public; Owner: - -- @@ -2964,6 +3003,14 @@ ALTER TABLE ONLY public.tags ADD CONSTRAINT tags_pkey PRIMARY KEY (id); +-- +-- Name: upload_media_assets upload_media_assets_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.upload_media_assets + ADD CONSTRAINT upload_media_assets_pkey PRIMARY KEY (id); + + -- -- Name: uploads uploads_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -4493,6 +4540,20 @@ CREATE INDEX index_tags_on_name_trgm ON public.tags USING gin (name public.gin_t CREATE INDEX index_tags_on_post_count ON public.tags USING btree (post_count); +-- +-- Name: index_upload_media_assets_on_media_asset_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_upload_media_assets_on_media_asset_id ON public.upload_media_assets USING btree (media_asset_id); + + +-- +-- Name: index_upload_media_assets_on_upload_id; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_upload_media_assets_on_upload_id ON public.upload_media_assets USING btree (upload_id); + + -- -- Name: index_uploads_on_referer_url; Type: INDEX; Schema: public; Owner: - -- @@ -4806,6 +4867,14 @@ ALTER TABLE ONLY public.uploads ADD CONSTRAINT fk_rails_127111e6ac FOREIGN KEY (post_id) REFERENCES public.posts(id) DEFERRABLE INITIALLY DEFERRED NOT VALID; +-- +-- Name: upload_media_assets fk_rails_171271f781; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.upload_media_assets + ADD CONSTRAINT fk_rails_171271f781 FOREIGN KEY (upload_id) REFERENCES public.uploads(id) DEFERRABLE INITIALLY DEFERRED; + + -- -- Name: bulk_update_requests fk_rails_1773ada54d; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -5414,6 +5483,14 @@ ALTER TABLE ONLY public.post_votes ADD CONSTRAINT fk_rails_f3edc07390 FOREIGN KEY (user_id) REFERENCES public.users(id) DEFERRABLE INITIALLY DEFERRED; +-- +-- Name: upload_media_assets fk_rails_f6bce0ea3f; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.upload_media_assets + ADD CONSTRAINT fk_rails_f6bce0ea3f FOREIGN KEY (media_asset_id) REFERENCES public.media_assets(id) DEFERRABLE INITIALLY DEFERRED; + + -- -- Name: user_upgrades fk_rails_f9349ed07b; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -5697,6 +5774,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20220110171022'), ('20220110171023'), ('20220110171024'), -('20220120233850'); +('20220120233850'), +('20220124195900');