diff --git a/app/models/upload.rb b/app/models/upload.rb index ec8c6449f..27061a05e 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -74,7 +74,7 @@ class Upload < ApplicationRecord end 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) end diff --git a/app/models/upload_media_asset.rb b/app/models/upload_media_asset.rb index 64705e2be..3f78e1d4c 100644 --- a/app/models/upload_media_asset.rb +++ b/app/models/upload_media_asset.rb @@ -4,8 +4,15 @@ class UploadMediaAsset < ApplicationRecord belongs_to :upload belongs_to :media_asset + enum status: { + pending: 0, + processing: 100, + active: 200, + failed: 300, + } + 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) end end diff --git a/db/migrate/20220210171310_add_columns_to_upload_media_assets.rb b/db/migrate/20220210171310_add_columns_to_upload_media_assets.rb new file mode 100644 index 000000000..8125bde02 --- /dev/null +++ b/db/migrate/20220210171310_add_columns_to_upload_media_assets.rb @@ -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 diff --git a/db/structure.sql b/db/structure.sql index a3b36dcce..ad313168e 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1915,7 +1915,10 @@ CREATE TABLE public.upload_media_assets ( 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 + 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, updated_at timestamp without time zone NOT NULL, 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); +-- +-- 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: - -- @@ -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); +-- +-- 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: - -- @@ -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); +-- +-- 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: - -- @@ -5750,6 +5775,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20220124195900'), ('20220203040648'), ('20220204075610'), -('20220207195123'); +('20220207195123'), +('20220210171310');