uploads: add upload_media_assets table.

Add a join table that allows multiple media assets (images or videos) to
be attached to uploads. This is for a future ability to upload multiple
files at once.
This commit is contained in:
evazion
2022-01-24 14:32:27 -06:00
parent a1d650848b
commit c4775d96a9
3 changed files with 97 additions and 1 deletions

View File

@@ -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

View File

@@ -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');