uploads: add columns needed for multi-file uploads.
* uploads.media_asset_count - the number of media assets attached to this upload. * upload_media_assets.status - the status of each media asset attached to this upload (processing, active, failed) * upload_media_assets.source_url - the source of each media asset attached to this upload * upload_media_assets.error - the error message if uploading the media asset failed
This commit is contained in:
@@ -74,7 +74,7 @@ class Upload < ApplicationRecord
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.search(params)
|
def self.search(params)
|
||||||
q = search_attributes(params, :id, :created_at, :updated_at, :source, :referer_url, :status, :uploader, :upload_media_assets, :media_assets)
|
q = search_attributes(params, :id, :created_at, :updated_at, :source, :referer_url, :status, :media_asset_count, :uploader, :upload_media_assets, :media_assets)
|
||||||
q.apply_default_order(params)
|
q.apply_default_order(params)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,15 @@ class UploadMediaAsset < ApplicationRecord
|
|||||||
belongs_to :upload
|
belongs_to :upload
|
||||||
belongs_to :media_asset
|
belongs_to :media_asset
|
||||||
|
|
||||||
|
enum status: {
|
||||||
|
pending: 0,
|
||||||
|
processing: 100,
|
||||||
|
active: 200,
|
||||||
|
failed: 300,
|
||||||
|
}
|
||||||
|
|
||||||
def self.search(params)
|
def self.search(params)
|
||||||
q = search_attributes(params, :id, :created_at, :updated_at, :upload, :media_asset)
|
q = search_attributes(params, :id, :created_at, :updated_at, :status, :source_url, :error, :upload, :media_asset)
|
||||||
q.apply_default_order(params)
|
q.apply_default_order(params)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
class AddColumnsToUploadMediaAssets < ActiveRecord::Migration[7.0]
|
||||||
|
def change
|
||||||
|
add_column :uploads, :media_asset_count, :integer, null: false, default: 0
|
||||||
|
add_column :upload_media_assets, :status, :integer, null: false, default: 0
|
||||||
|
add_column :upload_media_assets, :source_url, :string, null: false, default: ""
|
||||||
|
add_column :upload_media_assets, :error, :string, null: true
|
||||||
|
|
||||||
|
add_index :uploads, :media_asset_count
|
||||||
|
add_index :upload_media_assets, :status
|
||||||
|
add_index :upload_media_assets, :error, where: "error IS NOT NULL"
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1915,7 +1915,10 @@ CREATE TABLE public.upload_media_assets (
|
|||||||
created_at timestamp(6) without time zone NOT NULL,
|
created_at timestamp(6) without time zone NOT NULL,
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
updated_at timestamp(6) without time zone NOT NULL,
|
||||||
upload_id bigint NOT NULL,
|
upload_id bigint NOT NULL,
|
||||||
media_asset_id bigint NOT NULL
|
media_asset_id bigint NOT NULL,
|
||||||
|
status integer DEFAULT 0 NOT NULL,
|
||||||
|
source_url character varying DEFAULT ''::character varying NOT NULL,
|
||||||
|
error character varying
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -1951,7 +1954,8 @@ CREATE TABLE public.uploads (
|
|||||||
created_at timestamp without time zone NOT NULL,
|
created_at timestamp without time zone NOT NULL,
|
||||||
updated_at timestamp without time zone NOT NULL,
|
updated_at timestamp without time zone NOT NULL,
|
||||||
referer_url text,
|
referer_url text,
|
||||||
error text
|
error text,
|
||||||
|
media_asset_count integer DEFAULT 0 NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -4521,6 +4525,13 @@ 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);
|
CREATE INDEX index_tags_on_post_count ON public.tags USING btree (post_count);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: index_upload_media_assets_on_error; Type: INDEX; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE INDEX index_upload_media_assets_on_error ON public.upload_media_assets USING btree (error) WHERE (error IS NOT NULL);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: index_upload_media_assets_on_media_asset_id; Type: INDEX; Schema: public; Owner: -
|
-- Name: index_upload_media_assets_on_media_asset_id; Type: INDEX; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -4528,6 +4539,13 @@ CREATE INDEX index_tags_on_post_count ON public.tags USING btree (post_count);
|
|||||||
CREATE INDEX index_upload_media_assets_on_media_asset_id ON public.upload_media_assets USING btree (media_asset_id);
|
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_status; Type: INDEX; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE INDEX index_upload_media_assets_on_status ON public.upload_media_assets USING btree (status);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: index_upload_media_assets_on_upload_id; Type: INDEX; Schema: public; Owner: -
|
-- Name: index_upload_media_assets_on_upload_id; Type: INDEX; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -4542,6 +4560,13 @@ CREATE INDEX index_upload_media_assets_on_upload_id ON public.upload_media_asset
|
|||||||
CREATE INDEX index_uploads_on_error ON public.uploads USING btree (error) WHERE (error IS NOT NULL);
|
CREATE INDEX index_uploads_on_error ON public.uploads USING btree (error) WHERE (error IS NOT NULL);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: index_uploads_on_media_asset_count; Type: INDEX; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE INDEX index_uploads_on_media_asset_count ON public.uploads USING btree (media_asset_count);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: index_uploads_on_referer_url; Type: INDEX; Schema: public; Owner: -
|
-- Name: index_uploads_on_referer_url; Type: INDEX; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -5750,6 +5775,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||||||
('20220124195900'),
|
('20220124195900'),
|
||||||
('20220203040648'),
|
('20220203040648'),
|
||||||
('20220204075610'),
|
('20220204075610'),
|
||||||
('20220207195123');
|
('20220207195123'),
|
||||||
|
('20220210171310');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user