Domain::Users::FaUser aux table migration

This commit is contained in:
Dylan Knutson
2025-07-21 17:17:35 +00:00
parent 598ffe8dbf
commit d925a4b682
29 changed files with 3291 additions and 204 deletions

View File

@@ -0,0 +1,106 @@
# typed: strict
class AddAuxTablesForDomainUsersFaUsers < ActiveRecord::Migration[7.2]
sig { void }
def change
mirai_tablespace!
create_aux_table(:domain_users, :fa) do |t|
t.string :state
t.string :name
t.string :url_name
t.string :full_name
t.string :account_status
t.string :artist_type
t.string :mood
t.string :profile_html
# # num_* are those indicated on the user page
t.integer :num_pageviews
t.integer :num_submissions
t.integer :num_comments_recieved
t.integer :num_comments_given
t.integer :num_journals
t.integer :num_favorites
t.integer :num_watched_by
t.integer :num_watching
t.datetime :scanned_gallery_at
t.datetime :scanned_page_at
t.datetime :scanned_follows_at
t.datetime :scanned_followed_by_at
t.datetime :scanned_incremental_at
t.datetime :registered_at
t.datetime :migrated_followed_users_at
t.references :last_user_page, foreign_key: { to_table: :http_log_entries }
t.references :last_gallery_page,
foreign_key: {
to_table: :http_log_entries,
}
t.string :page_scan_error
t.boolean :is_disabled
end
up_only { execute <<-SQL }
INSERT INTO domain_users_fa_aux (
base_table_id,
state,
name,
url_name,
full_name,
account_status,
artist_type,
mood,
profile_html,
num_pageviews,
num_submissions,
num_comments_recieved,
num_comments_given,
num_journals,
num_favorites,
num_watched_by,
num_watching,
scanned_gallery_at,
scanned_page_at,
scanned_follows_at,
scanned_followed_by_at,
scanned_incremental_at,
registered_at,
migrated_followed_users_at,
last_user_page_id,
last_gallery_page_id,
page_scan_error,
is_disabled
)
SELECT
id as base_table_id,
(json_attributes->>'state')::text as state,
(json_attributes->>'name')::text as name,
(json_attributes->>'url_name')::text as url_name,
(json_attributes->>'full_name')::text as full_name,
(json_attributes->>'account_status')::text as account_status,
(json_attributes->>'artist_type')::text as artist_type,
(json_attributes->>'mood')::text as mood,
(json_attributes->>'profile_html')::text as profile_html,
(json_attributes->>'num_pageviews')::integer as num_pageviews,
(json_attributes->>'num_submissions')::integer as num_submissions,
(json_attributes->>'num_comments_recieved')::integer as num_comments_recieved,
(json_attributes->>'num_comments_given')::integer as num_comments_given,
(json_attributes->>'num_journals')::integer as num_journals,
(json_attributes->>'num_favorites')::integer as num_favorites,
(json_attributes->>'num_watched_by')::integer as num_watched_by,
(json_attributes->>'num_watching')::integer as num_watching,
(json_attributes->>'scanned_gallery_at')::timestamp as scanned_gallery_at,
(json_attributes->>'scanned_page_at')::timestamp as scanned_page_at,
(json_attributes->>'scanned_follows_at')::timestamp as scanned_follows_at,
(json_attributes->>'scanned_followed_by_at')::timestamp as scanned_followed_by_at,
(json_attributes->>'scanned_incremental_at')::timestamp as scanned_incremental_at,
(json_attributes->>'registered_at')::timestamp as registered_at,
(json_attributes->>'migrated_followed_users_at')::timestamp as migrated_followed_users_at,
(json_attributes->>'last_user_page_id')::integer as last_user_page_id,
(json_attributes->>'last_gallery_page_id')::integer as last_gallery_page_id,
(json_attributes->>'page_scan_error')::text as page_scan_error,
(json_attributes->>'is_disabled')::boolean as is_disabled
FROM domain_users
WHERE type = 'Domain::User::FaUser'
SQL
end
end

View File

@@ -0,0 +1,9 @@
class AddUrlStrLowerIndexToDomainPostFiles < ActiveRecord::Migration[7.2]
def change
mirai_tablespace!
add_index :domain_post_files,
"lower('url_str') text_pattern_ops",
name: "idx_domain_post_files_on_url_str_lower"
end
end

View File

@@ -3327,6 +3327,61 @@ CREATE SEQUENCE public.domain_users_e621_aux_base_table_id_seq
ALTER SEQUENCE public.domain_users_e621_aux_base_table_id_seq OWNED BY public.domain_users_e621_aux.base_table_id;
--
-- Name: domain_users_fa_aux; Type: TABLE; Schema: public; Owner: -; Tablespace: mirai
--
CREATE TABLE public.domain_users_fa_aux (
base_table_id bigint NOT NULL,
state character varying,
name character varying,
url_name character varying,
full_name character varying,
account_status character varying,
artist_type character varying,
mood character varying,
profile_html character varying,
num_pageviews integer,
num_submissions integer,
num_comments_recieved integer,
num_comments_given integer,
num_journals integer,
num_favorites integer,
num_watched_by integer,
num_watching integer,
scanned_gallery_at timestamp(6) without time zone,
scanned_page_at timestamp(6) without time zone,
scanned_follows_at timestamp(6) without time zone,
scanned_followed_by_at timestamp(6) without time zone,
scanned_incremental_at timestamp(6) without time zone,
registered_at timestamp(6) without time zone,
migrated_followed_users_at timestamp(6) without time zone,
last_user_page_id bigint,
last_gallery_page_id bigint,
page_scan_error character varying,
is_disabled boolean
);
--
-- Name: domain_users_fa_aux_base_table_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.domain_users_fa_aux_base_table_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: domain_users_fa_aux_base_table_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.domain_users_fa_aux_base_table_id_seq OWNED BY public.domain_users_fa_aux.base_table_id;
--
-- Name: domain_users_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
@@ -5010,6 +5065,13 @@ ALTER TABLE ONLY public.domain_users ALTER COLUMN id SET DEFAULT nextval('public
ALTER TABLE ONLY public.domain_users_e621_aux ALTER COLUMN base_table_id SET DEFAULT nextval('public.domain_users_e621_aux_base_table_id_seq'::regclass);
--
-- Name: domain_users_fa_aux base_table_id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.domain_users_fa_aux ALTER COLUMN base_table_id SET DEFAULT nextval('public.domain_users_fa_aux_base_table_id_seq'::regclass);
--
-- Name: domain_users_inkbunny_aux base_table_id; Type: DEFAULT; Schema: public; Owner: -
--
@@ -5857,6 +5919,14 @@ ALTER TABLE ONLY public.domain_users_e621_aux
ADD CONSTRAINT domain_users_e621_aux_pkey PRIMARY KEY (base_table_id);
--
-- Name: domain_users_fa_aux domain_users_fa_aux_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: mirai
--
ALTER TABLE ONLY public.domain_users_fa_aux
ADD CONSTRAINT domain_users_fa_aux_pkey PRIMARY KEY (base_table_id);
--
-- Name: domain_users_inkbunny_aux domain_users_inkbunny_aux_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: mirai
--
@@ -6087,6 +6157,13 @@ CREATE UNIQUE INDEX idx_domain_inkbunny_users_on_ib_id ON public.domain_users US
CREATE UNIQUE INDEX idx_domain_inkbunny_users_on_name ON public.domain_users USING btree (((json_attributes ->> 'name'::text))) WHERE (type = 'Domain::User::InkbunnyUser'::public.domain_user_type);
--
-- Name: idx_domain_post_files_on_url_str_lower; Type: INDEX; Schema: public; Owner: -; Tablespace: mirai
--
CREATE INDEX idx_domain_post_files_on_url_str_lower ON public.domain_post_files USING btree (lower('url_str'::text) text_pattern_ops);
--
-- Name: idx_domain_post_groups_on_owner_id; Type: INDEX; Schema: public; Owner: -; Tablespace: mirai
--
@@ -7820,6 +7897,27 @@ CREATE INDEX index_domain_users_e621_aux_on_e621_id ON public.domain_users_e621_
CREATE INDEX index_domain_users_e621_aux_on_name ON public.domain_users_e621_aux USING btree (name);
--
-- Name: index_domain_users_fa_aux_on_base_table_id; Type: INDEX; Schema: public; Owner: -; Tablespace: mirai
--
CREATE INDEX index_domain_users_fa_aux_on_base_table_id ON public.domain_users_fa_aux USING btree (base_table_id);
--
-- Name: index_domain_users_fa_aux_on_last_gallery_page_id; Type: INDEX; Schema: public; Owner: -; Tablespace: mirai
--
CREATE INDEX index_domain_users_fa_aux_on_last_gallery_page_id ON public.domain_users_fa_aux USING btree (last_gallery_page_id);
--
-- Name: index_domain_users_fa_aux_on_last_user_page_id; Type: INDEX; Schema: public; Owner: -; Tablespace: mirai
--
CREATE INDEX index_domain_users_fa_aux_on_last_user_page_id ON public.domain_users_fa_aux USING btree (last_user_page_id);
--
-- Name: index_domain_users_inkbunny_aux_on_base_table_id; Type: INDEX; Schema: public; Owner: -; Tablespace: mirai
--
@@ -9077,6 +9175,14 @@ ALTER TABLE ONLY public.domain_e621_favs
ADD CONSTRAINT fk_rails_0b7ec98aa2 FOREIGN KEY (post_id) REFERENCES public.domain_e621_posts(id);
--
-- Name: domain_users_fa_aux fk_rails_0d64d940cf; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.domain_users_fa_aux
ADD CONSTRAINT fk_rails_0d64d940cf FOREIGN KEY (base_table_id) REFERENCES public.domain_users(id);
--
-- Name: domain_user_job_event_add_tracked_objects fk_rails_0e1b667c4a; Type: FK CONSTRAINT; Schema: public; Owner: -
--
@@ -9269,6 +9375,14 @@ ALTER TABLE ONLY public.domain_fa_user_avatar_versions
ADD CONSTRAINT fk_rails_77fefb9ac3 FOREIGN KEY (item_id) REFERENCES public.domain_fa_user_avatars(id);
--
-- Name: domain_users_fa_aux fk_rails_7e51f8bfbc; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.domain_users_fa_aux
ADD CONSTRAINT fk_rails_7e51f8bfbc FOREIGN KEY (last_gallery_page_id) REFERENCES public.http_log_entries(id);
--
-- Name: domain_post_files fk_rails_7eb6ae5fa3; Type: FK CONSTRAINT; Schema: public; Owner: -
--
@@ -9405,6 +9519,14 @@ ALTER TABLE ONLY public.http_log_entries
ADD CONSTRAINT fk_rails_c5f7bcff78 FOREIGN KEY (caused_by_id) REFERENCES public.http_log_entries(id);
--
-- Name: domain_users_fa_aux fk_rails_c6ff2c94b5; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.domain_users_fa_aux
ADD CONSTRAINT fk_rails_c6ff2c94b5 FOREIGN KEY (last_user_page_id) REFERENCES public.http_log_entries(id);
--
-- Name: domain_user_post_favs fk_rails_c79733f291; Type: FK CONSTRAINT; Schema: public; Owner: -
--
@@ -9516,6 +9638,8 @@ ALTER TABLE ONLY public.domain_twitter_tweets
SET search_path TO "$user", public;
INSERT INTO "schema_migrations" (version) VALUES
('20250721171216'),
('20250718220223'),
('20250718195345'),
('20250718165332'),
('20250718162608'),