From 644a448aa914925880829bdd003167ca63d50d4c Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 10 Aug 2025 03:57:38 +0800 Subject: [PATCH] [main] Fixing active counts slow queries. (#5907) (#5917) * [0.19] Fixing active counts slow queries. (#5907) * Fixing active counts slow queries. * Simplify back to str tuple * Batch site and community updates * Using update from temp table * Making aggs temp table use interval name. * Make dev setup use optimized postgres. * Addressing PR comments. * Use ref * Removing system custom info from customPostgresql.conf * Forgot to remove old scheduled tasks. * Making sure migrations aren't missing anything from release/v0.19 Checked using git diff --diff-filter D --stat release/v0.19 migrations * Rename all migrations to come after release/v0.19 migrations * Add liked_at is not null check. --- crates/routes/src/utils/scheduled_tasks.rs | 175 +++++++++++++++--- .../down.sql | 6 + .../up.sql | 6 + .../down.sql | 2 + .../up.sql | 7 + .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 10 + .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 2 - .../up.sql | 2 - .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 2 +- .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 2 + .../up.sql | 8 + 143 files changed, 194 insertions(+), 28 deletions(-) create mode 100644 migrations/2025-05-15-154113_missing_post_indexes/down.sql create mode 100644 migrations/2025-05-15-154113_missing_post_indexes/up.sql create mode 100644 migrations/2025-07-29-152742_add_indexes_for_aggregates_activity/down.sql create mode 100644 migrations/2025-07-29-152742_add_indexes_for_aggregates_activity/up.sql rename migrations/{2023-10-24-140438_enable_private_messages => 2025-08-01-000000_enable_private_messages}/down.sql (100%) rename migrations/{2023-10-24-140438_enable_private_messages => 2025-08-01-000000_enable_private_messages}/up.sql (100%) rename migrations/{2024-01-01-225731_error_if_code_migrations_needed => 2025-08-01-000002_error_if_code_migrations_needed}/down.sql (100%) rename migrations/{2024-01-01-225731_error_if_code_migrations_needed => 2025-08-01-000002_error_if_code_migrations_needed}/up.sql (100%) rename migrations/{2024-03-04-143245_remove_show_scores_column => 2025-08-01-000003_remove_show_scores_column}/down.sql (100%) rename migrations/{2024-03-04-143245_remove_show_scores_column => 2025-08-01-000003_remove_show_scores_column}/up.sql (100%) rename migrations/{2024-04-08-204327_custom_emoji_tagline_changes => 2025-08-01-000004_custom_emoji_tagline_changes}/down.sql (100%) rename migrations/{2024-04-08-204327_custom_emoji_tagline_changes => 2025-08-01-000004_custom_emoji_tagline_changes}/up.sql (100%) rename migrations/{2024-09-12-130204_drop-enable-nsfw => 2025-08-01-000005_drop-enable-nsfw}/down.sql (100%) rename migrations/{2024-09-12-130204_drop-enable-nsfw => 2025-08-01-000005_drop-enable-nsfw}/up.sql (100%) rename migrations/{2024-09-16-000000_default_comment_sort_type => 2025-08-01-000006_default_comment_sort_type}/down.sql (100%) rename migrations/{2024-09-16-000000_default_comment_sort_type => 2025-08-01-000006_default_comment_sort_type}/up.sql (100%) rename migrations/{2024-09-16-095656_schedule-post => 2025-08-01-000007_schedule-post}/down.sql (100%) rename migrations/{2024-09-16-095656_schedule-post => 2025-08-01-000007_schedule-post}/up.sql (100%) rename migrations/{2024-09-16-174833_create_oauth_provider => 2025-08-01-000008_create_oauth_provider}/down.sql (100%) rename migrations/{2024-09-16-174833_create_oauth_provider => 2025-08-01-000008_create_oauth_provider}/up.sql (100%) rename migrations/{2024-09-20-134838_add_federation_vote_rejection => 2025-08-01-000009_add_federation_vote_rejection}/down.sql (100%) rename migrations/{2024-09-20-134838_add_federation_vote_rejection => 2025-08-01-000009_add_federation_vote_rejection}/up.sql (100%) rename migrations/{2024-09-23-133038_remove_auto_expand => 2025-08-01-000010_remove_auto_expand}/down.sql (100%) rename migrations/{2024-09-23-133038_remove_auto_expand => 2025-08-01-000010_remove_auto_expand}/up.sql (100%) rename migrations/{2024-10-16-141718_add_short_community_description => 2025-08-01-000011_add_short_community_description}/down.sql (100%) rename migrations/{2024-10-16-141718_add_short_community_description => 2025-08-01-000011_add_short_community_description}/up.sql (100%) rename migrations/{2024-10-18-074533_no-individual-inboxes => 2025-08-01-000012_no-individual-inboxes}/down.sql (100%) rename migrations/{2024-10-18-074533_no-individual-inboxes => 2025-08-01-000012_no-individual-inboxes}/up.sql (100%) rename migrations/{2024-10-23-091053_comment-vote-remote-postid => 2025-08-01-000013_comment-vote-remote-postid}/down.sql (100%) rename migrations/{2024-10-23-091053_comment-vote-remote-postid => 2025-08-01-000013_comment-vote-remote-postid}/up.sql (100%) rename migrations/{2024-10-29-090055_private-community => 2025-08-01-000014_private-community}/down.sql (100%) rename migrations/{2024-10-29-090055_private-community => 2025-08-01-000014_private-community}/up.sql (100%) rename migrations/{2024-11-01-233231_add_mark_fetched_posts_as_read => 2025-08-01-000015_add_mark_fetched_posts_as_read}/down.sql (100%) rename migrations/{2024-11-01-233231_add_mark_fetched_posts_as_read => 2025-08-01-000015_add_mark_fetched_posts_as_read}/up.sql (100%) rename migrations/{2024-11-10-134311_smoosh-tables-together => 2025-08-01-000016_smoosh-tables-together}/down.sql (97%) rename migrations/{2024-11-10-134311_smoosh-tables-together => 2025-08-01-000016_smoosh-tables-together}/up.sql (100%) rename migrations/{2024-11-18-012112_forbid_diesel_cli => 2025-08-01-000017_forbid_diesel_cli}/down.sql (100%) rename migrations/{2024-11-18-012112_forbid_diesel_cli => 2025-08-01-000017_forbid_diesel_cli}/up.sql (100%) rename migrations/{2024-11-18-012113_custom_migration_runner => 2025-08-01-000018_custom_migration_runner}/down.sql (100%) rename migrations/{2024-11-18-012113_custom_migration_runner => 2025-08-01-000018_custom_migration_runner}/up.sql (100%) rename migrations/{2024-11-21-195004_add_report_count => 2025-08-01-000019_add_report_count}/down.sql (100%) rename migrations/{2024-11-21-195004_add_report_count => 2025-08-01-000019_add_report_count}/up.sql (100%) rename migrations/{2024-11-23-234637_oauth_pkce => 2025-08-01-000020_oauth_pkce}/down.sql (100%) rename migrations/{2024-11-23-234637_oauth_pkce => 2025-08-01-000020_oauth_pkce}/up.sql (100%) rename migrations/{2024-11-25-161129_add_blurhash_to_image_details => 2025-08-01-000021_add_blurhash_to_image_details}/down.sql (100%) rename migrations/{2024-11-25-161129_add_blurhash_to_image_details => 2025-08-01-000021_add_blurhash_to_image_details}/up.sql (100%) rename migrations/{2024-11-28-142005_instance-block-mod-log => 2025-08-01-000022_instance-block-mod-log}/down.sql (100%) rename migrations/{2024-11-28-142005_instance-block-mod-log => 2025-08-01-000022_instance-block-mod-log}/up.sql (100%) rename migrations/{2024-12-02-181601_add_report_combined_table => 2025-08-01-000023_add_report_combined_table}/down.sql (100%) rename migrations/{2024-12-02-181601_add_report_combined_table => 2025-08-01-000023_add_report_combined_table}/up.sql (100%) rename migrations/{2024-12-05-233704_add_person_content_combined_table => 2025-08-01-000024_add_person_content_combined_table}/down.sql (100%) rename migrations/{2024-12-05-233704_add_person_content_combined_table => 2025-08-01-000024_add_person_content_combined_table}/up.sql (100%) rename migrations/{2024-12-08-165614_add_modlog_combined_table => 2025-08-01-000025_add_modlog_combined_table}/down.sql (100%) rename migrations/{2024-12-08-165614_add_modlog_combined_table => 2025-08-01-000025_add_modlog_combined_table}/up.sql (100%) rename migrations/{2024-12-10-193418_add_inbox_combined_table => 2025-08-01-000026_add_inbox_combined_table}/down.sql (100%) rename migrations/{2024-12-10-193418_add_inbox_combined_table => 2025-08-01-000026_add_inbox_combined_table}/up.sql (100%) rename migrations/{2024-12-12-222846_add_search_combined_table => 2025-08-01-000027_add_search_combined_table}/down.sql (100%) rename migrations/{2024-12-12-222846_add_search_combined_table => 2025-08-01-000027_add_search_combined_table}/up.sql (100%) rename migrations/{2024-12-15-151642_add_index_on_person_id_read_for_read_only_post_actions => 2025-08-01-000028_add_index_on_person_id_read_for_read_only_post_actions}/down.sql (100%) rename migrations/{2024-12-15-151642_add_index_on_person_id_read_for_read_only_post_actions => 2025-08-01-000028_add_index_on_person_id_read_for_read_only_post_actions}/up.sql (100%) rename migrations/{2024-12-17-144959_community-post-tags => 2025-08-01-000029_community-post-tags}/down.sql (100%) rename migrations/{2024-12-17-144959_community-post-tags => 2025-08-01-000029_community-post-tags}/up.sql (100%) rename migrations/{2024-12-18-200602_optimize_get_random_community => 2025-08-01-000030_optimize_get_random_community}/down.sql (100%) rename migrations/{2024-12-18-200602_optimize_get_random_community => 2025-08-01-000030_optimize_get_random_community}/up.sql (100%) rename migrations/{2024-12-20-090225_update-replaceable-schema => 2025-08-01-000031_update-replaceable-schema}/down.sql (100%) rename migrations/{2024-12-20-090225_update-replaceable-schema => 2025-08-01-000031_update-replaceable-schema}/up.sql (100%) rename migrations/{2024-12-27-220142_community_report => 2025-08-01-000032_community_report}/down.sql (100%) rename migrations/{2024-12-27-220142_community_report => 2025-08-01-000032_community_report}/up.sql (100%) rename migrations/{2024-12-29-203717_add_post_keyword_block_table => 2025-08-01-000033_add_post_keyword_block_table}/down.sql (100%) rename migrations/{2024-12-29-203717_add_post_keyword_block_table => 2025-08-01-000033_add_post_keyword_block_table}/up.sql (100%) rename migrations/{2025-01-09-144233_no-image-token => 2025-08-01-000034_no-image-token}/down.sql (100%) rename migrations/{2025-01-09-144233_no-image-token => 2025-08-01-000034_no-image-token}/up.sql (100%) rename migrations/{2025-01-14-023145_media_filter => 2025-08-01-000035_media_filter}/down.sql (100%) rename migrations/{2025-01-14-023145_media_filter => 2025-08-01-000035_media_filter}/up.sql (100%) rename migrations/{2025-01-21-000000_interactions_per_month_schema => 2025-08-01-000036_interactions_per_month_schema}/down.sql (100%) rename migrations/{2025-01-21-000000_interactions_per_month_schema => 2025-08-01-000036_interactions_per_month_schema}/up.sql (100%) rename migrations/{2025-01-23-143621_report_to_admins => 2025-08-01-000037_report_to_admins}/down.sql (100%) rename migrations/{2025-01-23-143621_report_to_admins => 2025-08-01-000037_report_to_admins}/up.sql (100%) rename migrations/{2025-02-05-090155_ap_id => 2025-08-01-000038_ap_id}/down.sql (100%) rename migrations/{2025-02-05-090155_ap_id => 2025-08-01-000038_ap_id}/up.sql (100%) rename migrations/{2025-02-06-233105_remove_post_sort_type_enums => 2025-08-01-000039_remove_post_sort_type_enums}/down.sql (100%) rename migrations/{2025-02-06-233105_remove_post_sort_type_enums => 2025-08-01-000039_remove_post_sort_type_enums}/up.sql (100%) rename migrations/{2025-02-18-143408_block_nsfw => 2025-08-01-000040_block_nsfw}/down.sql (100%) rename migrations/{2025-02-18-143408_block_nsfw => 2025-08-01-000040_block_nsfw}/up.sql (100%) rename migrations/{2025-03-04-105516_remove-aggregate-tables => 2025-08-01-000041_remove-aggregate-tables}/down.sql (99%) rename migrations/{2025-03-04-105516_remove-aggregate-tables => 2025-08-01-000041_remove-aggregate-tables}/up.sql (99%) rename migrations/{2025-03-11-124442_community-hidden-visibility => 2025-08-01-000042_community-hidden-visibility}/down.sql (100%) rename migrations/{2025-03-11-124442_community-hidden-visibility => 2025-08-01-000042_community-hidden-visibility}/up.sql (100%) rename migrations/{2025-03-13-112516_community-local-removed => 2025-08-01-000043_community-local-removed}/down.sql (100%) rename migrations/{2025-03-13-112516_community-local-removed => 2025-08-01-000043_community-local-removed}/up.sql (100%) rename migrations/{2025-03-13-112517_post_comment_pending => 2025-08-01-000044_post_comment_pending}/down.sql (100%) rename migrations/{2025-03-13-112517_post_comment_pending => 2025-08-01-000044_post_comment_pending}/up.sql (100%) rename migrations/{2025-03-17-110023_site_person_ban => 2025-08-01-000045_site_person_ban}/down.sql (100%) rename migrations/{2025-03-17-110023_site_person_ban => 2025-08-01-000045_site_person_ban}/up.sql (100%) rename migrations/{2025-03-25-221304_remove_post_instance_id => 2025-08-01-000046_remove_post_instance_id}/down.sql (99%) rename migrations/{2025-03-25-221304_remove_post_instance_id => 2025-08-01-000046_remove_post_instance_id}/up.sql (100%) rename migrations/{2025-04-07-141445_disable-email-notifications => 2025-08-01-000047_disable-email-notifications}/down.sql (100%) rename migrations/{2025-04-07-141445_disable-email-notifications => 2025-08-01-000047_disable-email-notifications}/up.sql (100%) rename migrations/{2025-04-09-123352_cursor_pagination_indexes => 2025-08-01-000048_cursor_pagination_indexes}/down.sql (100%) rename migrations/{2025-04-09-123352_cursor_pagination_indexes => 2025-08-01-000048_cursor_pagination_indexes}/up.sql (100%) rename migrations/{2025-04-10-234244_add_liked_combined => 2025-08-01-000049_add_liked_combined}/down.sql (100%) rename migrations/{2025-04-10-234244_add_liked_combined => 2025-08-01-000049_add_liked_combined}/up.sql (100%) rename migrations/{2025-04-25-183519_show_downvotes_for_others_only => 2025-08-01-000050_show_downvotes_for_others_only}/down.sql (100%) rename migrations/{2025-04-25-183519_show_downvotes_for_others_only => 2025-08-01-000050_show_downvotes_for_others_only}/up.sql (100%) rename migrations/{2025-05-06-145536_local_image_person => 2025-08-01-000051_local_image_person}/down.sql (100%) rename migrations/{2025-05-06-145536_local_image_person => 2025-08-01-000051_local_image_person}/up.sql (100%) rename migrations/{2025-05-08-161908_lock_reason => 2025-08-01-000052_lock_reason}/down.sql (100%) rename migrations/{2025-05-08-161908_lock_reason => 2025-08-01-000052_lock_reason}/up.sql (100%) rename migrations/{2025-05-15-143802_remove_hide_modlog_names => 2025-08-01-000053_remove_hide_modlog_names}/down.sql (100%) rename migrations/{2025-05-15-143802_remove_hide_modlog_names => 2025-08-01-000053_remove_hide_modlog_names}/up.sql (100%) rename migrations/{2025-05-26-092442_mod-change-community-vis => 2025-08-01-000054_mod-change-community-vis}/down.sql (100%) rename migrations/{2025-05-26-092442_mod-change-community-vis => 2025-08-01-000054_mod-change-community-vis}/up.sql (100%) rename migrations/{2025-06-08-084651_rename_timestamp_add_at => 2025-08-01-000055_rename_timestamp_add_at}/down.sql (100%) rename migrations/{2025-06-08-084651_rename_timestamp_add_at => 2025-08-01-000055_rename_timestamp_add_at}/up.sql (100%) rename migrations/{2025-06-09-114549_person_note => 2025-08-01-000056_person_note}/down.sql (100%) rename migrations/{2025-06-09-114549_person_note => 2025-08-01-000056_person_note}/up.sql (100%) rename migrations/{2025-06-11-103308_multi-community => 2025-08-01-000057_multi-community}/down.sql (100%) rename migrations/{2025-06-11-103308_multi-community => 2025-08-01-000057_multi-community}/up.sql (100%) rename migrations/{2025-06-12-164319_instance_block_communities_persons => 2025-08-01-000058_instance_block_communities_persons}/down.sql (100%) rename migrations/{2025-06-12-164319_instance_block_communities_persons => 2025-08-01-000058_instance_block_communities_persons}/up.sql (100%) rename migrations/{2025-06-14-141408_person_votes => 2025-08-01-000059_person_votes}/down.sql (100%) rename migrations/{2025-06-14-141408_person_votes => 2025-08-01-000059_person_votes}/up.sql (100%) rename migrations/{2025-06-24-093800_rename-rate-limit-columns => 2025-08-01-000060_rename-rate-limit-columns}/down.sql (100%) rename migrations/{2025-06-24-093800_rename-rate-limit-columns => 2025-08-01-000060_rename-rate-limit-columns}/up.sql (100%) rename migrations/{2025-06-26-083302_drop-person-ban => 2025-08-01-000061_drop-person-ban}/down.sql (100%) rename migrations/{2025-06-26-083302_drop-person-ban => 2025-08-01-000061_drop-person-ban}/up.sql (100%) rename migrations/{2025-07-10-105316_username-instance-unique => 2025-08-01-000062_username-instance-unique}/down.sql (100%) rename migrations/{2025-07-10-105316_username-instance-unique => 2025-08-01-000062_username-instance-unique}/up.sql (100%) rename migrations/{2025-07-17-103657_post-or-comment-notification => 2025-08-01-000063_post-or-comment-notification}/down.sql (100%) rename migrations/{2025-07-17-103657_post-or-comment-notification => 2025-08-01-000063_post-or-comment-notification}/up.sql (100%) rename migrations/{2025-07-18-033358_add_missing_foreign_key_indexes => 2025-08-01-000064_add_missing_foreign_key_indexes}/down.sql (100%) rename migrations/{2025-07-18-033358_add_missing_foreign_key_indexes => 2025-08-01-000064_add_missing_foreign_key_indexes}/up.sql (100%) rename migrations/{2025-07-21-081447_group-follow => 2025-08-01-000065_group-follow}/down.sql (100%) rename migrations/{2025-07-21-081447_group-follow => 2025-08-01-000065_group-follow}/up.sql (100%) rename migrations/{2025-07-24-092826_modlog-rename => 2025-08-01-000066_modlog-rename}/down.sql (100%) rename migrations/{2025-07-24-092826_modlog-rename => 2025-08-01-000066_modlog-rename}/up.sql (100%) rename migrations/{2025-07-26-230802_add_default_items_per_page => 2025-08-01-000067_add_default_items_per_page}/down.sql (100%) rename migrations/{2025-07-26-230802_add_default_items_per_page => 2025-08-01-000067_add_default_items_per_page}/up.sql (100%) rename migrations/{2025-03-11-015056_local_user_trigger => 2025-08-01-000068_local_user_trigger}/down.sql (100%) rename migrations/{2025-03-11-015056_local_user_trigger => 2025-08-01-000068_local_user_trigger}/up.sql (100%) create mode 100644 migrations/2025-08-06-170325_add_indexes_for_aggregates_activity_new/down.sql create mode 100644 migrations/2025-08-06-170325_add_indexes_for_aggregates_activity_new/up.sql diff --git a/crates/routes/src/utils/scheduled_tasks.rs b/crates/routes/src/utils/scheduled_tasks.rs index e74ca26a6..800ddc135 100644 --- a/crates/routes/src/utils/scheduled_tasks.rs +++ b/crates/routes/src/utils/scheduled_tasks.rs @@ -6,7 +6,7 @@ use diesel::{ dsl::{count, exists, not, update, IntervalDsl}, query_builder::AsQuery, sql_query, - sql_types::{BigInt, Timestamptz}, + sql_types::{BigInt, Integer, Timestamptz}, BoolExpressionMethods, ExpressionMethods, NullableExpressionMethods, @@ -82,12 +82,15 @@ pub async fn setup(context: Data) -> LemmyResult<()> { }); let context_1 = context.clone(); - // Update active counts expired bans and unpublished posts every hour + // Hourly tasks: + // - Update active daily counts + // - Expired bans + // - Expired instance blocks scheduler.every(CTimeUnits::hour(1)).run(move || { let context = context_1.clone(); async move { - active_counts(&mut context.pool()) + active_counts(&mut context.pool(), ONE_DAY) .await .inspect_err(|e| warn!("Failed to update active counts: {e}")) .ok(); @@ -104,6 +107,8 @@ pub async fn setup(context: Data) -> LemmyResult<()> { let context_1 = context.reset_request_count(); // Daily tasks: + // - Update site and community activity counts + // - Update local user count // - Overwrite deleted & removed posts and comments every day // - Delete old denied users // - Update instance software @@ -112,6 +117,14 @@ pub async fn setup(context: Data) -> LemmyResult<()> { let context = context_1.reset_request_count(); async move { + all_active_counts(&mut context.pool(), ALL_ACTIVE_INTERVALS) + .await + .inspect_err(|e| warn!("Failed to update active counts: {e}")) + .ok(); + update_local_user_count(&mut context.pool()) + .await + .inspect_err(|e| warn!("Failed to update local user count: {e}")) + .ok(); overwrite_deleted_posts_and_comments(&mut context.pool()) .await .inspect_err(|e| warn!("Failed to overwrite deleted posts/comments: {e}")) @@ -335,33 +348,147 @@ async fn overwrite_deleted_posts_and_comments(pool: &mut DbPool<'_>) -> LemmyRes Ok(()) } -/// Re-calculate the site, community active counts and local user count -async fn active_counts(pool: &mut DbPool<'_>) -> LemmyResult<()> { - info!("Updating active site and community aggregates ..."); +const ONE_DAY: (&str, &str) = ("1 day", "day"); +const ONE_WEEK: (&str, &str) = ("1 week", "week"); +const ONE_MONTH: (&str, &str) = ("1 month", "month"); +const SIX_MONTHS: (&str, &str) = ("6 months", "half_year"); + +const ALL_ACTIVE_INTERVALS: [(&str, &str); 4] = [ONE_DAY, ONE_WEEK, ONE_MONTH, SIX_MONTHS]; + +#[derive(QueryableByName)] +struct SiteActivitySelectResult { + #[diesel(sql_type = Integer)] + site_aggregates_activity: i32, +} + +#[derive(QueryableByName)] +struct CommunityAggregatesUpdateResult { + #[diesel(sql_type = Integer)] + community_id: i32, +} + +/// Re-calculate the site and community active counts for a given interval +async fn active_counts(pool: &mut DbPool<'_>, interval: (&str, &str)) -> LemmyResult<()> { + info!( + "Updating active site and community aggregates for {}...", + interval.0 + ); let conn = &mut get_conn(pool).await?; + process_site_aggregates(conn, interval).await?; + process_community_aggregates(conn, interval).await?; - let intervals = vec![ - ("1 day", "day"), - ("1 week", "week"), - ("1 month", "month"), - ("6 months", "half_year"), - ]; + Ok(()) +} - for (full_form, abbr) in &intervals { - let update_site_stmt = format!( - "update local_site set users_active_{} = (select r.site_aggregates_activity('{}')) where site_id = 1", - abbr, full_form - ); - sql_query(update_site_stmt).execute(conn).await?; +/// Re-calculate all the active counts +async fn all_active_counts(pool: &mut DbPool<'_>, intervals: [(&str, &str); 4]) -> LemmyResult<()> { + for i in intervals { + active_counts(pool, i).await?; + } + Ok(()) +} - let update_community_stmt = format!("update community ca set users_active_{} = mv.count_ from r.community_aggregates_activity('{}') mv where ca.id = mv.community_id_", abbr, full_form); - sql_query(update_community_stmt).execute(conn).await?; +async fn process_site_aggregates( + conn: &mut AsyncPgConnection, + interval: (&str, &str), +) -> LemmyResult<()> { + // Select the site count result first + let site_activity = sql_query(format!( + "select * from r.site_aggregates_activity('{}')", + interval.0 + )) + .get_result::(conn) + .await + .inspect_err(|e| warn!("Failed to fetch site activity: {e}"))?; + + let processed_rows = site_activity.site_aggregates_activity; + + // Update the site count + sql_query(format!( + "update local_site set users_active_{} = $1", + interval.1, + )) + .bind::(processed_rows) + .execute(conn) + .await + .inspect_err(|e| warn!("Failed to update site stats: {e}")) + .ok(); + + info!( + "Finished site_aggregates active_{} (processed {} rows)", + interval.1, processed_rows + ); + + Ok(()) +} + +async fn process_community_aggregates( + conn: &mut AsyncPgConnection, + interval: (&str, &str), +) -> LemmyResult<()> { + // Select the community count results into a temp table. + let caggs_temp_table = &format!("community_aggregates_temp_table_{}", interval.1); + + // Drop temp table before and after, just in case + let drop_caggs_temp_table = &format!("DROP TABLE IF EXISTS {caggs_temp_table}"); + sql_query(drop_caggs_temp_table).execute(conn).await.ok(); + + sql_query(format!( + "CREATE TEMP TABLE {caggs_temp_table} AS SELECT * FROM r.community_aggregates_activity('{}')", + interval.0 + )) + .execute(conn) + .await + .inspect_err(|e| warn!("Failed to create temp community_aggregates table: {e}"))?; + + // Split up into 1000 community transaction batches + let update_batch_size = 1000; + let mut processed_rows_count = 0; + let mut prev_community_id_res = Some(0); + + while let Some(prev_community_id) = prev_community_id_res { + let updated_rows = sql_query(format!( + "UPDATE community a + SET users_active_{} = b.count_ + FROM ( + SELECT count_, community_id_ + FROM {caggs_temp_table} + WHERE community_id_ > $1 + ORDER BY community_id_ + LIMIT $2 + ) AS b + WHERE a.id = b.community_id_ + RETURNING a.id + ", + interval.1 + )) + .bind::(prev_community_id) + .bind::(update_batch_size) + .get_results::(conn) + .await + .inspect_err(|e| warn!("Failed to update community stats: {e}"))?; + + processed_rows_count += updated_rows.len(); + prev_community_id_res = updated_rows.last().map(|row| row.community_id); } - let update_interactions_stmt = "update community ca set interactions_month = mv.count_ from r.community_aggregates_interactions('1 month') mv where ca.id = mv.community_id_"; - sql_query(update_interactions_stmt).execute(conn).await?; + // Drop the temp table just in case + sql_query(drop_caggs_temp_table).execute(conn).await.ok(); + info!( + "Finished community_aggregates active_{} (processed {} rows)", + interval.1, processed_rows_count + ); + + info!("Done."); + Ok(()) +} + +async fn update_local_user_count(pool: &mut DbPool<'_>) -> LemmyResult<()> { + info!("Updating the local user count..."); + + let conn = &mut get_conn(pool).await?; let user_count = local_user::table .inner_join( person::table.left_join( @@ -599,7 +726,9 @@ mod tests { let context = LemmyContext::init_test_context().await; let data = TestData::create(&mut context.pool()).await?; - active_counts(&mut context.pool()).await?; + active_counts(&mut context.pool(), ONE_DAY).await?; + all_active_counts(&mut context.pool(), ALL_ACTIVE_INTERVALS).await?; + update_local_user_count(&mut context.pool()).await?; update_hot_ranks(&mut context.pool()).await?; update_banned_when_expired(&mut context.pool()).await?; delete_instance_block_when_expired(&mut context.pool()).await?; diff --git a/migrations/2025-05-15-154113_missing_post_indexes/down.sql b/migrations/2025-05-15-154113_missing_post_indexes/down.sql new file mode 100644 index 000000000..4673e5f4f --- /dev/null +++ b/migrations/2025-05-15-154113_missing_post_indexes/down.sql @@ -0,0 +1,6 @@ +DROP INDEX idx_post_read_post; + +DROP INDEX idx_post_hide_post; + +DROP INDEX idx_post_saved_post; + diff --git a/migrations/2025-05-15-154113_missing_post_indexes/up.sql b/migrations/2025-05-15-154113_missing_post_indexes/up.sql new file mode 100644 index 000000000..d4062d75f --- /dev/null +++ b/migrations/2025-05-15-154113_missing_post_indexes/up.sql @@ -0,0 +1,6 @@ +CREATE INDEX idx_post_read_post ON post_read (post_id); + +CREATE INDEX idx_post_hide_post ON post_hide (post_id); + +CREATE INDEX idx_post_saved_post ON post_saved (post_id); + diff --git a/migrations/2025-07-29-152742_add_indexes_for_aggregates_activity/down.sql b/migrations/2025-07-29-152742_add_indexes_for_aggregates_activity/down.sql new file mode 100644 index 000000000..860f95c79 --- /dev/null +++ b/migrations/2025-07-29-152742_add_indexes_for_aggregates_activity/down.sql @@ -0,0 +1,2 @@ +DROP INDEX idx_post_published, idx_post_like_published, idx_comment_like_published; + diff --git a/migrations/2025-07-29-152742_add_indexes_for_aggregates_activity/up.sql b/migrations/2025-07-29-152742_add_indexes_for_aggregates_activity/up.sql new file mode 100644 index 000000000..fb2fb4c80 --- /dev/null +++ b/migrations/2025-07-29-152742_add_indexes_for_aggregates_activity/up.sql @@ -0,0 +1,7 @@ +-- These actually increased query time, but they prevent more postgres workers from being launched, and so should free up locks. +CREATE INDEX idx_post_published ON post (published); + +CREATE INDEX idx_post_like_published ON post_like (published); + +CREATE INDEX idx_comment_like_published ON comment_like (published); + diff --git a/migrations/2023-10-24-140438_enable_private_messages/down.sql b/migrations/2025-08-01-000000_enable_private_messages/down.sql similarity index 100% rename from migrations/2023-10-24-140438_enable_private_messages/down.sql rename to migrations/2025-08-01-000000_enable_private_messages/down.sql diff --git a/migrations/2023-10-24-140438_enable_private_messages/up.sql b/migrations/2025-08-01-000000_enable_private_messages/up.sql similarity index 100% rename from migrations/2023-10-24-140438_enable_private_messages/up.sql rename to migrations/2025-08-01-000000_enable_private_messages/up.sql diff --git a/migrations/2024-01-01-225731_error_if_code_migrations_needed/down.sql b/migrations/2025-08-01-000002_error_if_code_migrations_needed/down.sql similarity index 100% rename from migrations/2024-01-01-225731_error_if_code_migrations_needed/down.sql rename to migrations/2025-08-01-000002_error_if_code_migrations_needed/down.sql diff --git a/migrations/2024-01-01-225731_error_if_code_migrations_needed/up.sql b/migrations/2025-08-01-000002_error_if_code_migrations_needed/up.sql similarity index 100% rename from migrations/2024-01-01-225731_error_if_code_migrations_needed/up.sql rename to migrations/2025-08-01-000002_error_if_code_migrations_needed/up.sql diff --git a/migrations/2024-03-04-143245_remove_show_scores_column/down.sql b/migrations/2025-08-01-000003_remove_show_scores_column/down.sql similarity index 100% rename from migrations/2024-03-04-143245_remove_show_scores_column/down.sql rename to migrations/2025-08-01-000003_remove_show_scores_column/down.sql diff --git a/migrations/2024-03-04-143245_remove_show_scores_column/up.sql b/migrations/2025-08-01-000003_remove_show_scores_column/up.sql similarity index 100% rename from migrations/2024-03-04-143245_remove_show_scores_column/up.sql rename to migrations/2025-08-01-000003_remove_show_scores_column/up.sql diff --git a/migrations/2024-04-08-204327_custom_emoji_tagline_changes/down.sql b/migrations/2025-08-01-000004_custom_emoji_tagline_changes/down.sql similarity index 100% rename from migrations/2024-04-08-204327_custom_emoji_tagline_changes/down.sql rename to migrations/2025-08-01-000004_custom_emoji_tagline_changes/down.sql diff --git a/migrations/2024-04-08-204327_custom_emoji_tagline_changes/up.sql b/migrations/2025-08-01-000004_custom_emoji_tagline_changes/up.sql similarity index 100% rename from migrations/2024-04-08-204327_custom_emoji_tagline_changes/up.sql rename to migrations/2025-08-01-000004_custom_emoji_tagline_changes/up.sql diff --git a/migrations/2024-09-12-130204_drop-enable-nsfw/down.sql b/migrations/2025-08-01-000005_drop-enable-nsfw/down.sql similarity index 100% rename from migrations/2024-09-12-130204_drop-enable-nsfw/down.sql rename to migrations/2025-08-01-000005_drop-enable-nsfw/down.sql diff --git a/migrations/2024-09-12-130204_drop-enable-nsfw/up.sql b/migrations/2025-08-01-000005_drop-enable-nsfw/up.sql similarity index 100% rename from migrations/2024-09-12-130204_drop-enable-nsfw/up.sql rename to migrations/2025-08-01-000005_drop-enable-nsfw/up.sql diff --git a/migrations/2024-09-16-000000_default_comment_sort_type/down.sql b/migrations/2025-08-01-000006_default_comment_sort_type/down.sql similarity index 100% rename from migrations/2024-09-16-000000_default_comment_sort_type/down.sql rename to migrations/2025-08-01-000006_default_comment_sort_type/down.sql diff --git a/migrations/2024-09-16-000000_default_comment_sort_type/up.sql b/migrations/2025-08-01-000006_default_comment_sort_type/up.sql similarity index 100% rename from migrations/2024-09-16-000000_default_comment_sort_type/up.sql rename to migrations/2025-08-01-000006_default_comment_sort_type/up.sql diff --git a/migrations/2024-09-16-095656_schedule-post/down.sql b/migrations/2025-08-01-000007_schedule-post/down.sql similarity index 100% rename from migrations/2024-09-16-095656_schedule-post/down.sql rename to migrations/2025-08-01-000007_schedule-post/down.sql diff --git a/migrations/2024-09-16-095656_schedule-post/up.sql b/migrations/2025-08-01-000007_schedule-post/up.sql similarity index 100% rename from migrations/2024-09-16-095656_schedule-post/up.sql rename to migrations/2025-08-01-000007_schedule-post/up.sql diff --git a/migrations/2024-09-16-174833_create_oauth_provider/down.sql b/migrations/2025-08-01-000008_create_oauth_provider/down.sql similarity index 100% rename from migrations/2024-09-16-174833_create_oauth_provider/down.sql rename to migrations/2025-08-01-000008_create_oauth_provider/down.sql diff --git a/migrations/2024-09-16-174833_create_oauth_provider/up.sql b/migrations/2025-08-01-000008_create_oauth_provider/up.sql similarity index 100% rename from migrations/2024-09-16-174833_create_oauth_provider/up.sql rename to migrations/2025-08-01-000008_create_oauth_provider/up.sql diff --git a/migrations/2024-09-20-134838_add_federation_vote_rejection/down.sql b/migrations/2025-08-01-000009_add_federation_vote_rejection/down.sql similarity index 100% rename from migrations/2024-09-20-134838_add_federation_vote_rejection/down.sql rename to migrations/2025-08-01-000009_add_federation_vote_rejection/down.sql diff --git a/migrations/2024-09-20-134838_add_federation_vote_rejection/up.sql b/migrations/2025-08-01-000009_add_federation_vote_rejection/up.sql similarity index 100% rename from migrations/2024-09-20-134838_add_federation_vote_rejection/up.sql rename to migrations/2025-08-01-000009_add_federation_vote_rejection/up.sql diff --git a/migrations/2024-09-23-133038_remove_auto_expand/down.sql b/migrations/2025-08-01-000010_remove_auto_expand/down.sql similarity index 100% rename from migrations/2024-09-23-133038_remove_auto_expand/down.sql rename to migrations/2025-08-01-000010_remove_auto_expand/down.sql diff --git a/migrations/2024-09-23-133038_remove_auto_expand/up.sql b/migrations/2025-08-01-000010_remove_auto_expand/up.sql similarity index 100% rename from migrations/2024-09-23-133038_remove_auto_expand/up.sql rename to migrations/2025-08-01-000010_remove_auto_expand/up.sql diff --git a/migrations/2024-10-16-141718_add_short_community_description/down.sql b/migrations/2025-08-01-000011_add_short_community_description/down.sql similarity index 100% rename from migrations/2024-10-16-141718_add_short_community_description/down.sql rename to migrations/2025-08-01-000011_add_short_community_description/down.sql diff --git a/migrations/2024-10-16-141718_add_short_community_description/up.sql b/migrations/2025-08-01-000011_add_short_community_description/up.sql similarity index 100% rename from migrations/2024-10-16-141718_add_short_community_description/up.sql rename to migrations/2025-08-01-000011_add_short_community_description/up.sql diff --git a/migrations/2024-10-18-074533_no-individual-inboxes/down.sql b/migrations/2025-08-01-000012_no-individual-inboxes/down.sql similarity index 100% rename from migrations/2024-10-18-074533_no-individual-inboxes/down.sql rename to migrations/2025-08-01-000012_no-individual-inboxes/down.sql diff --git a/migrations/2024-10-18-074533_no-individual-inboxes/up.sql b/migrations/2025-08-01-000012_no-individual-inboxes/up.sql similarity index 100% rename from migrations/2024-10-18-074533_no-individual-inboxes/up.sql rename to migrations/2025-08-01-000012_no-individual-inboxes/up.sql diff --git a/migrations/2024-10-23-091053_comment-vote-remote-postid/down.sql b/migrations/2025-08-01-000013_comment-vote-remote-postid/down.sql similarity index 100% rename from migrations/2024-10-23-091053_comment-vote-remote-postid/down.sql rename to migrations/2025-08-01-000013_comment-vote-remote-postid/down.sql diff --git a/migrations/2024-10-23-091053_comment-vote-remote-postid/up.sql b/migrations/2025-08-01-000013_comment-vote-remote-postid/up.sql similarity index 100% rename from migrations/2024-10-23-091053_comment-vote-remote-postid/up.sql rename to migrations/2025-08-01-000013_comment-vote-remote-postid/up.sql diff --git a/migrations/2024-10-29-090055_private-community/down.sql b/migrations/2025-08-01-000014_private-community/down.sql similarity index 100% rename from migrations/2024-10-29-090055_private-community/down.sql rename to migrations/2025-08-01-000014_private-community/down.sql diff --git a/migrations/2024-10-29-090055_private-community/up.sql b/migrations/2025-08-01-000014_private-community/up.sql similarity index 100% rename from migrations/2024-10-29-090055_private-community/up.sql rename to migrations/2025-08-01-000014_private-community/up.sql diff --git a/migrations/2024-11-01-233231_add_mark_fetched_posts_as_read/down.sql b/migrations/2025-08-01-000015_add_mark_fetched_posts_as_read/down.sql similarity index 100% rename from migrations/2024-11-01-233231_add_mark_fetched_posts_as_read/down.sql rename to migrations/2025-08-01-000015_add_mark_fetched_posts_as_read/down.sql diff --git a/migrations/2024-11-01-233231_add_mark_fetched_posts_as_read/up.sql b/migrations/2025-08-01-000015_add_mark_fetched_posts_as_read/up.sql similarity index 100% rename from migrations/2024-11-01-233231_add_mark_fetched_posts_as_read/up.sql rename to migrations/2025-08-01-000015_add_mark_fetched_posts_as_read/up.sql diff --git a/migrations/2024-11-10-134311_smoosh-tables-together/down.sql b/migrations/2025-08-01-000016_smoosh-tables-together/down.sql similarity index 97% rename from migrations/2024-11-10-134311_smoosh-tables-together/down.sql rename to migrations/2025-08-01-000016_smoosh-tables-together/down.sql index 6f132c38d..95c4cbb22 100644 --- a/migrations/2024-11-10-134311_smoosh-tables-together/down.sql +++ b/migrations/2025-08-01-000016_smoosh-tables-together/down.sql @@ -305,6 +305,16 @@ CREATE INDEX IF NOT EXISTS idx_post_like_post ON post_like (post_id); CREATE INDEX idx_comment_like_comment ON comment_like (comment_id); +CREATE INDEX idx_post_hide_post ON post_hide (post_id); + +CREATE INDEX idx_post_read_post ON post_read (post_id); + +CREATE INDEX idx_post_saved_post ON post_saved (post_id); + +CREATE INDEX idx_post_like_published ON post_like (published); + +CREATE INDEX idx_comment_like_published ON comment_like (published); + DROP INDEX idx_person_actions_person, idx_person_actions_target, idx_post_actions_person, idx_post_actions_post; -- Drop `NOT NULL` indexes of columns that still exist diff --git a/migrations/2024-11-10-134311_smoosh-tables-together/up.sql b/migrations/2025-08-01-000016_smoosh-tables-together/up.sql similarity index 100% rename from migrations/2024-11-10-134311_smoosh-tables-together/up.sql rename to migrations/2025-08-01-000016_smoosh-tables-together/up.sql diff --git a/migrations/2024-11-18-012112_forbid_diesel_cli/down.sql b/migrations/2025-08-01-000017_forbid_diesel_cli/down.sql similarity index 100% rename from migrations/2024-11-18-012112_forbid_diesel_cli/down.sql rename to migrations/2025-08-01-000017_forbid_diesel_cli/down.sql diff --git a/migrations/2024-11-18-012112_forbid_diesel_cli/up.sql b/migrations/2025-08-01-000017_forbid_diesel_cli/up.sql similarity index 100% rename from migrations/2024-11-18-012112_forbid_diesel_cli/up.sql rename to migrations/2025-08-01-000017_forbid_diesel_cli/up.sql diff --git a/migrations/2024-11-18-012113_custom_migration_runner/down.sql b/migrations/2025-08-01-000018_custom_migration_runner/down.sql similarity index 100% rename from migrations/2024-11-18-012113_custom_migration_runner/down.sql rename to migrations/2025-08-01-000018_custom_migration_runner/down.sql diff --git a/migrations/2024-11-18-012113_custom_migration_runner/up.sql b/migrations/2025-08-01-000018_custom_migration_runner/up.sql similarity index 100% rename from migrations/2024-11-18-012113_custom_migration_runner/up.sql rename to migrations/2025-08-01-000018_custom_migration_runner/up.sql diff --git a/migrations/2024-11-21-195004_add_report_count/down.sql b/migrations/2025-08-01-000019_add_report_count/down.sql similarity index 100% rename from migrations/2024-11-21-195004_add_report_count/down.sql rename to migrations/2025-08-01-000019_add_report_count/down.sql diff --git a/migrations/2024-11-21-195004_add_report_count/up.sql b/migrations/2025-08-01-000019_add_report_count/up.sql similarity index 100% rename from migrations/2024-11-21-195004_add_report_count/up.sql rename to migrations/2025-08-01-000019_add_report_count/up.sql diff --git a/migrations/2024-11-23-234637_oauth_pkce/down.sql b/migrations/2025-08-01-000020_oauth_pkce/down.sql similarity index 100% rename from migrations/2024-11-23-234637_oauth_pkce/down.sql rename to migrations/2025-08-01-000020_oauth_pkce/down.sql diff --git a/migrations/2024-11-23-234637_oauth_pkce/up.sql b/migrations/2025-08-01-000020_oauth_pkce/up.sql similarity index 100% rename from migrations/2024-11-23-234637_oauth_pkce/up.sql rename to migrations/2025-08-01-000020_oauth_pkce/up.sql diff --git a/migrations/2024-11-25-161129_add_blurhash_to_image_details/down.sql b/migrations/2025-08-01-000021_add_blurhash_to_image_details/down.sql similarity index 100% rename from migrations/2024-11-25-161129_add_blurhash_to_image_details/down.sql rename to migrations/2025-08-01-000021_add_blurhash_to_image_details/down.sql diff --git a/migrations/2024-11-25-161129_add_blurhash_to_image_details/up.sql b/migrations/2025-08-01-000021_add_blurhash_to_image_details/up.sql similarity index 100% rename from migrations/2024-11-25-161129_add_blurhash_to_image_details/up.sql rename to migrations/2025-08-01-000021_add_blurhash_to_image_details/up.sql diff --git a/migrations/2024-11-28-142005_instance-block-mod-log/down.sql b/migrations/2025-08-01-000022_instance-block-mod-log/down.sql similarity index 100% rename from migrations/2024-11-28-142005_instance-block-mod-log/down.sql rename to migrations/2025-08-01-000022_instance-block-mod-log/down.sql diff --git a/migrations/2024-11-28-142005_instance-block-mod-log/up.sql b/migrations/2025-08-01-000022_instance-block-mod-log/up.sql similarity index 100% rename from migrations/2024-11-28-142005_instance-block-mod-log/up.sql rename to migrations/2025-08-01-000022_instance-block-mod-log/up.sql diff --git a/migrations/2024-12-02-181601_add_report_combined_table/down.sql b/migrations/2025-08-01-000023_add_report_combined_table/down.sql similarity index 100% rename from migrations/2024-12-02-181601_add_report_combined_table/down.sql rename to migrations/2025-08-01-000023_add_report_combined_table/down.sql diff --git a/migrations/2024-12-02-181601_add_report_combined_table/up.sql b/migrations/2025-08-01-000023_add_report_combined_table/up.sql similarity index 100% rename from migrations/2024-12-02-181601_add_report_combined_table/up.sql rename to migrations/2025-08-01-000023_add_report_combined_table/up.sql diff --git a/migrations/2024-12-05-233704_add_person_content_combined_table/down.sql b/migrations/2025-08-01-000024_add_person_content_combined_table/down.sql similarity index 100% rename from migrations/2024-12-05-233704_add_person_content_combined_table/down.sql rename to migrations/2025-08-01-000024_add_person_content_combined_table/down.sql diff --git a/migrations/2024-12-05-233704_add_person_content_combined_table/up.sql b/migrations/2025-08-01-000024_add_person_content_combined_table/up.sql similarity index 100% rename from migrations/2024-12-05-233704_add_person_content_combined_table/up.sql rename to migrations/2025-08-01-000024_add_person_content_combined_table/up.sql diff --git a/migrations/2024-12-08-165614_add_modlog_combined_table/down.sql b/migrations/2025-08-01-000025_add_modlog_combined_table/down.sql similarity index 100% rename from migrations/2024-12-08-165614_add_modlog_combined_table/down.sql rename to migrations/2025-08-01-000025_add_modlog_combined_table/down.sql diff --git a/migrations/2024-12-08-165614_add_modlog_combined_table/up.sql b/migrations/2025-08-01-000025_add_modlog_combined_table/up.sql similarity index 100% rename from migrations/2024-12-08-165614_add_modlog_combined_table/up.sql rename to migrations/2025-08-01-000025_add_modlog_combined_table/up.sql diff --git a/migrations/2024-12-10-193418_add_inbox_combined_table/down.sql b/migrations/2025-08-01-000026_add_inbox_combined_table/down.sql similarity index 100% rename from migrations/2024-12-10-193418_add_inbox_combined_table/down.sql rename to migrations/2025-08-01-000026_add_inbox_combined_table/down.sql diff --git a/migrations/2024-12-10-193418_add_inbox_combined_table/up.sql b/migrations/2025-08-01-000026_add_inbox_combined_table/up.sql similarity index 100% rename from migrations/2024-12-10-193418_add_inbox_combined_table/up.sql rename to migrations/2025-08-01-000026_add_inbox_combined_table/up.sql diff --git a/migrations/2024-12-12-222846_add_search_combined_table/down.sql b/migrations/2025-08-01-000027_add_search_combined_table/down.sql similarity index 100% rename from migrations/2024-12-12-222846_add_search_combined_table/down.sql rename to migrations/2025-08-01-000027_add_search_combined_table/down.sql diff --git a/migrations/2024-12-12-222846_add_search_combined_table/up.sql b/migrations/2025-08-01-000027_add_search_combined_table/up.sql similarity index 100% rename from migrations/2024-12-12-222846_add_search_combined_table/up.sql rename to migrations/2025-08-01-000027_add_search_combined_table/up.sql diff --git a/migrations/2024-12-15-151642_add_index_on_person_id_read_for_read_only_post_actions/down.sql b/migrations/2025-08-01-000028_add_index_on_person_id_read_for_read_only_post_actions/down.sql similarity index 100% rename from migrations/2024-12-15-151642_add_index_on_person_id_read_for_read_only_post_actions/down.sql rename to migrations/2025-08-01-000028_add_index_on_person_id_read_for_read_only_post_actions/down.sql diff --git a/migrations/2024-12-15-151642_add_index_on_person_id_read_for_read_only_post_actions/up.sql b/migrations/2025-08-01-000028_add_index_on_person_id_read_for_read_only_post_actions/up.sql similarity index 100% rename from migrations/2024-12-15-151642_add_index_on_person_id_read_for_read_only_post_actions/up.sql rename to migrations/2025-08-01-000028_add_index_on_person_id_read_for_read_only_post_actions/up.sql diff --git a/migrations/2024-12-17-144959_community-post-tags/down.sql b/migrations/2025-08-01-000029_community-post-tags/down.sql similarity index 100% rename from migrations/2024-12-17-144959_community-post-tags/down.sql rename to migrations/2025-08-01-000029_community-post-tags/down.sql diff --git a/migrations/2024-12-17-144959_community-post-tags/up.sql b/migrations/2025-08-01-000029_community-post-tags/up.sql similarity index 100% rename from migrations/2024-12-17-144959_community-post-tags/up.sql rename to migrations/2025-08-01-000029_community-post-tags/up.sql diff --git a/migrations/2024-12-18-200602_optimize_get_random_community/down.sql b/migrations/2025-08-01-000030_optimize_get_random_community/down.sql similarity index 100% rename from migrations/2024-12-18-200602_optimize_get_random_community/down.sql rename to migrations/2025-08-01-000030_optimize_get_random_community/down.sql diff --git a/migrations/2024-12-18-200602_optimize_get_random_community/up.sql b/migrations/2025-08-01-000030_optimize_get_random_community/up.sql similarity index 100% rename from migrations/2024-12-18-200602_optimize_get_random_community/up.sql rename to migrations/2025-08-01-000030_optimize_get_random_community/up.sql diff --git a/migrations/2024-12-20-090225_update-replaceable-schema/down.sql b/migrations/2025-08-01-000031_update-replaceable-schema/down.sql similarity index 100% rename from migrations/2024-12-20-090225_update-replaceable-schema/down.sql rename to migrations/2025-08-01-000031_update-replaceable-schema/down.sql diff --git a/migrations/2024-12-20-090225_update-replaceable-schema/up.sql b/migrations/2025-08-01-000031_update-replaceable-schema/up.sql similarity index 100% rename from migrations/2024-12-20-090225_update-replaceable-schema/up.sql rename to migrations/2025-08-01-000031_update-replaceable-schema/up.sql diff --git a/migrations/2024-12-27-220142_community_report/down.sql b/migrations/2025-08-01-000032_community_report/down.sql similarity index 100% rename from migrations/2024-12-27-220142_community_report/down.sql rename to migrations/2025-08-01-000032_community_report/down.sql diff --git a/migrations/2024-12-27-220142_community_report/up.sql b/migrations/2025-08-01-000032_community_report/up.sql similarity index 100% rename from migrations/2024-12-27-220142_community_report/up.sql rename to migrations/2025-08-01-000032_community_report/up.sql diff --git a/migrations/2024-12-29-203717_add_post_keyword_block_table/down.sql b/migrations/2025-08-01-000033_add_post_keyword_block_table/down.sql similarity index 100% rename from migrations/2024-12-29-203717_add_post_keyword_block_table/down.sql rename to migrations/2025-08-01-000033_add_post_keyword_block_table/down.sql diff --git a/migrations/2024-12-29-203717_add_post_keyword_block_table/up.sql b/migrations/2025-08-01-000033_add_post_keyword_block_table/up.sql similarity index 100% rename from migrations/2024-12-29-203717_add_post_keyword_block_table/up.sql rename to migrations/2025-08-01-000033_add_post_keyword_block_table/up.sql diff --git a/migrations/2025-01-09-144233_no-image-token/down.sql b/migrations/2025-08-01-000034_no-image-token/down.sql similarity index 100% rename from migrations/2025-01-09-144233_no-image-token/down.sql rename to migrations/2025-08-01-000034_no-image-token/down.sql diff --git a/migrations/2025-01-09-144233_no-image-token/up.sql b/migrations/2025-08-01-000034_no-image-token/up.sql similarity index 100% rename from migrations/2025-01-09-144233_no-image-token/up.sql rename to migrations/2025-08-01-000034_no-image-token/up.sql diff --git a/migrations/2025-01-14-023145_media_filter/down.sql b/migrations/2025-08-01-000035_media_filter/down.sql similarity index 100% rename from migrations/2025-01-14-023145_media_filter/down.sql rename to migrations/2025-08-01-000035_media_filter/down.sql diff --git a/migrations/2025-01-14-023145_media_filter/up.sql b/migrations/2025-08-01-000035_media_filter/up.sql similarity index 100% rename from migrations/2025-01-14-023145_media_filter/up.sql rename to migrations/2025-08-01-000035_media_filter/up.sql diff --git a/migrations/2025-01-21-000000_interactions_per_month_schema/down.sql b/migrations/2025-08-01-000036_interactions_per_month_schema/down.sql similarity index 100% rename from migrations/2025-01-21-000000_interactions_per_month_schema/down.sql rename to migrations/2025-08-01-000036_interactions_per_month_schema/down.sql diff --git a/migrations/2025-01-21-000000_interactions_per_month_schema/up.sql b/migrations/2025-08-01-000036_interactions_per_month_schema/up.sql similarity index 100% rename from migrations/2025-01-21-000000_interactions_per_month_schema/up.sql rename to migrations/2025-08-01-000036_interactions_per_month_schema/up.sql diff --git a/migrations/2025-01-23-143621_report_to_admins/down.sql b/migrations/2025-08-01-000037_report_to_admins/down.sql similarity index 100% rename from migrations/2025-01-23-143621_report_to_admins/down.sql rename to migrations/2025-08-01-000037_report_to_admins/down.sql diff --git a/migrations/2025-01-23-143621_report_to_admins/up.sql b/migrations/2025-08-01-000037_report_to_admins/up.sql similarity index 100% rename from migrations/2025-01-23-143621_report_to_admins/up.sql rename to migrations/2025-08-01-000037_report_to_admins/up.sql diff --git a/migrations/2025-02-05-090155_ap_id/down.sql b/migrations/2025-08-01-000038_ap_id/down.sql similarity index 100% rename from migrations/2025-02-05-090155_ap_id/down.sql rename to migrations/2025-08-01-000038_ap_id/down.sql diff --git a/migrations/2025-02-05-090155_ap_id/up.sql b/migrations/2025-08-01-000038_ap_id/up.sql similarity index 100% rename from migrations/2025-02-05-090155_ap_id/up.sql rename to migrations/2025-08-01-000038_ap_id/up.sql diff --git a/migrations/2025-02-06-233105_remove_post_sort_type_enums/down.sql b/migrations/2025-08-01-000039_remove_post_sort_type_enums/down.sql similarity index 100% rename from migrations/2025-02-06-233105_remove_post_sort_type_enums/down.sql rename to migrations/2025-08-01-000039_remove_post_sort_type_enums/down.sql diff --git a/migrations/2025-02-06-233105_remove_post_sort_type_enums/up.sql b/migrations/2025-08-01-000039_remove_post_sort_type_enums/up.sql similarity index 100% rename from migrations/2025-02-06-233105_remove_post_sort_type_enums/up.sql rename to migrations/2025-08-01-000039_remove_post_sort_type_enums/up.sql diff --git a/migrations/2025-02-18-143408_block_nsfw/down.sql b/migrations/2025-08-01-000040_block_nsfw/down.sql similarity index 100% rename from migrations/2025-02-18-143408_block_nsfw/down.sql rename to migrations/2025-08-01-000040_block_nsfw/down.sql diff --git a/migrations/2025-02-18-143408_block_nsfw/up.sql b/migrations/2025-08-01-000040_block_nsfw/up.sql similarity index 100% rename from migrations/2025-02-18-143408_block_nsfw/up.sql rename to migrations/2025-08-01-000040_block_nsfw/up.sql diff --git a/migrations/2025-03-04-105516_remove-aggregate-tables/down.sql b/migrations/2025-08-01-000041_remove-aggregate-tables/down.sql similarity index 99% rename from migrations/2025-03-04-105516_remove-aggregate-tables/down.sql rename to migrations/2025-08-01-000041_remove-aggregate-tables/down.sql index f45064241..dc44a746e 100644 --- a/migrations/2025-03-04-105516_remove-aggregate-tables/down.sql +++ b/migrations/2025-08-01-000041_remove-aggregate-tables/down.sql @@ -223,8 +223,6 @@ DROP INDEX idx_post_featured_local_published; DROP INDEX idx_post_featured_local_published_asc; -DROP INDEX idx_post_published; - DROP INDEX idx_post_published_asc; DROP INDEX idx_search_combined_score; diff --git a/migrations/2025-03-04-105516_remove-aggregate-tables/up.sql b/migrations/2025-08-01-000041_remove-aggregate-tables/up.sql similarity index 99% rename from migrations/2025-03-04-105516_remove-aggregate-tables/up.sql rename to migrations/2025-08-01-000041_remove-aggregate-tables/up.sql index c6766c4a3..509b4ac7a 100644 --- a/migrations/2025-03-04-105516_remove-aggregate-tables/up.sql +++ b/migrations/2025-08-01-000041_remove-aggregate-tables/up.sql @@ -212,8 +212,6 @@ CREATE INDEX idx_post_featured_local_score ON post USING btree (featured_local D CREATE INDEX idx_post_nonzero_hotrank ON post USING btree (published DESC) WHERE ((hot_rank <> (0)::double precision) OR (hot_rank_active <> (0)::double precision)); -CREATE INDEX idx_post_published ON post USING btree (published DESC); - CREATE INDEX idx_post_published_asc ON post USING btree (reverse_timestamp_sort (published) DESC); -- merge community_aggregates into community table diff --git a/migrations/2025-03-11-124442_community-hidden-visibility/down.sql b/migrations/2025-08-01-000042_community-hidden-visibility/down.sql similarity index 100% rename from migrations/2025-03-11-124442_community-hidden-visibility/down.sql rename to migrations/2025-08-01-000042_community-hidden-visibility/down.sql diff --git a/migrations/2025-03-11-124442_community-hidden-visibility/up.sql b/migrations/2025-08-01-000042_community-hidden-visibility/up.sql similarity index 100% rename from migrations/2025-03-11-124442_community-hidden-visibility/up.sql rename to migrations/2025-08-01-000042_community-hidden-visibility/up.sql diff --git a/migrations/2025-03-13-112516_community-local-removed/down.sql b/migrations/2025-08-01-000043_community-local-removed/down.sql similarity index 100% rename from migrations/2025-03-13-112516_community-local-removed/down.sql rename to migrations/2025-08-01-000043_community-local-removed/down.sql diff --git a/migrations/2025-03-13-112516_community-local-removed/up.sql b/migrations/2025-08-01-000043_community-local-removed/up.sql similarity index 100% rename from migrations/2025-03-13-112516_community-local-removed/up.sql rename to migrations/2025-08-01-000043_community-local-removed/up.sql diff --git a/migrations/2025-03-13-112517_post_comment_pending/down.sql b/migrations/2025-08-01-000044_post_comment_pending/down.sql similarity index 100% rename from migrations/2025-03-13-112517_post_comment_pending/down.sql rename to migrations/2025-08-01-000044_post_comment_pending/down.sql diff --git a/migrations/2025-03-13-112517_post_comment_pending/up.sql b/migrations/2025-08-01-000044_post_comment_pending/up.sql similarity index 100% rename from migrations/2025-03-13-112517_post_comment_pending/up.sql rename to migrations/2025-08-01-000044_post_comment_pending/up.sql diff --git a/migrations/2025-03-17-110023_site_person_ban/down.sql b/migrations/2025-08-01-000045_site_person_ban/down.sql similarity index 100% rename from migrations/2025-03-17-110023_site_person_ban/down.sql rename to migrations/2025-08-01-000045_site_person_ban/down.sql diff --git a/migrations/2025-03-17-110023_site_person_ban/up.sql b/migrations/2025-08-01-000045_site_person_ban/up.sql similarity index 100% rename from migrations/2025-03-17-110023_site_person_ban/up.sql rename to migrations/2025-08-01-000045_site_person_ban/up.sql diff --git a/migrations/2025-03-25-221304_remove_post_instance_id/down.sql b/migrations/2025-08-01-000046_remove_post_instance_id/down.sql similarity index 99% rename from migrations/2025-03-25-221304_remove_post_instance_id/down.sql rename to migrations/2025-08-01-000046_remove_post_instance_id/down.sql index 693d631da..7e64da609 100644 --- a/migrations/2025-03-25-221304_remove_post_instance_id/down.sql +++ b/migrations/2025-08-01-000046_remove_post_instance_id/down.sql @@ -301,7 +301,7 @@ CREATE INDEX idx_post_language ON post USING btree (language_id); CREATE INDEX idx_post_nonzero_hotrank ON post USING btree (published DESC) WHERE ((hot_rank <> (0)::double precision) OR (hot_rank_active <> (0)::double precision)); -CREATE INDEX idx_post_published ON post USING btree (published DESC); +CREATE INDEX idx_post_published ON post USING btree (published); CREATE INDEX idx_post_published_asc ON post USING btree (reverse_timestamp_sort (published) DESC); diff --git a/migrations/2025-03-25-221304_remove_post_instance_id/up.sql b/migrations/2025-08-01-000046_remove_post_instance_id/up.sql similarity index 100% rename from migrations/2025-03-25-221304_remove_post_instance_id/up.sql rename to migrations/2025-08-01-000046_remove_post_instance_id/up.sql diff --git a/migrations/2025-04-07-141445_disable-email-notifications/down.sql b/migrations/2025-08-01-000047_disable-email-notifications/down.sql similarity index 100% rename from migrations/2025-04-07-141445_disable-email-notifications/down.sql rename to migrations/2025-08-01-000047_disable-email-notifications/down.sql diff --git a/migrations/2025-04-07-141445_disable-email-notifications/up.sql b/migrations/2025-08-01-000047_disable-email-notifications/up.sql similarity index 100% rename from migrations/2025-04-07-141445_disable-email-notifications/up.sql rename to migrations/2025-08-01-000047_disable-email-notifications/up.sql diff --git a/migrations/2025-04-09-123352_cursor_pagination_indexes/down.sql b/migrations/2025-08-01-000048_cursor_pagination_indexes/down.sql similarity index 100% rename from migrations/2025-04-09-123352_cursor_pagination_indexes/down.sql rename to migrations/2025-08-01-000048_cursor_pagination_indexes/down.sql diff --git a/migrations/2025-04-09-123352_cursor_pagination_indexes/up.sql b/migrations/2025-08-01-000048_cursor_pagination_indexes/up.sql similarity index 100% rename from migrations/2025-04-09-123352_cursor_pagination_indexes/up.sql rename to migrations/2025-08-01-000048_cursor_pagination_indexes/up.sql diff --git a/migrations/2025-04-10-234244_add_liked_combined/down.sql b/migrations/2025-08-01-000049_add_liked_combined/down.sql similarity index 100% rename from migrations/2025-04-10-234244_add_liked_combined/down.sql rename to migrations/2025-08-01-000049_add_liked_combined/down.sql diff --git a/migrations/2025-04-10-234244_add_liked_combined/up.sql b/migrations/2025-08-01-000049_add_liked_combined/up.sql similarity index 100% rename from migrations/2025-04-10-234244_add_liked_combined/up.sql rename to migrations/2025-08-01-000049_add_liked_combined/up.sql diff --git a/migrations/2025-04-25-183519_show_downvotes_for_others_only/down.sql b/migrations/2025-08-01-000050_show_downvotes_for_others_only/down.sql similarity index 100% rename from migrations/2025-04-25-183519_show_downvotes_for_others_only/down.sql rename to migrations/2025-08-01-000050_show_downvotes_for_others_only/down.sql diff --git a/migrations/2025-04-25-183519_show_downvotes_for_others_only/up.sql b/migrations/2025-08-01-000050_show_downvotes_for_others_only/up.sql similarity index 100% rename from migrations/2025-04-25-183519_show_downvotes_for_others_only/up.sql rename to migrations/2025-08-01-000050_show_downvotes_for_others_only/up.sql diff --git a/migrations/2025-05-06-145536_local_image_person/down.sql b/migrations/2025-08-01-000051_local_image_person/down.sql similarity index 100% rename from migrations/2025-05-06-145536_local_image_person/down.sql rename to migrations/2025-08-01-000051_local_image_person/down.sql diff --git a/migrations/2025-05-06-145536_local_image_person/up.sql b/migrations/2025-08-01-000051_local_image_person/up.sql similarity index 100% rename from migrations/2025-05-06-145536_local_image_person/up.sql rename to migrations/2025-08-01-000051_local_image_person/up.sql diff --git a/migrations/2025-05-08-161908_lock_reason/down.sql b/migrations/2025-08-01-000052_lock_reason/down.sql similarity index 100% rename from migrations/2025-05-08-161908_lock_reason/down.sql rename to migrations/2025-08-01-000052_lock_reason/down.sql diff --git a/migrations/2025-05-08-161908_lock_reason/up.sql b/migrations/2025-08-01-000052_lock_reason/up.sql similarity index 100% rename from migrations/2025-05-08-161908_lock_reason/up.sql rename to migrations/2025-08-01-000052_lock_reason/up.sql diff --git a/migrations/2025-05-15-143802_remove_hide_modlog_names/down.sql b/migrations/2025-08-01-000053_remove_hide_modlog_names/down.sql similarity index 100% rename from migrations/2025-05-15-143802_remove_hide_modlog_names/down.sql rename to migrations/2025-08-01-000053_remove_hide_modlog_names/down.sql diff --git a/migrations/2025-05-15-143802_remove_hide_modlog_names/up.sql b/migrations/2025-08-01-000053_remove_hide_modlog_names/up.sql similarity index 100% rename from migrations/2025-05-15-143802_remove_hide_modlog_names/up.sql rename to migrations/2025-08-01-000053_remove_hide_modlog_names/up.sql diff --git a/migrations/2025-05-26-092442_mod-change-community-vis/down.sql b/migrations/2025-08-01-000054_mod-change-community-vis/down.sql similarity index 100% rename from migrations/2025-05-26-092442_mod-change-community-vis/down.sql rename to migrations/2025-08-01-000054_mod-change-community-vis/down.sql diff --git a/migrations/2025-05-26-092442_mod-change-community-vis/up.sql b/migrations/2025-08-01-000054_mod-change-community-vis/up.sql similarity index 100% rename from migrations/2025-05-26-092442_mod-change-community-vis/up.sql rename to migrations/2025-08-01-000054_mod-change-community-vis/up.sql diff --git a/migrations/2025-06-08-084651_rename_timestamp_add_at/down.sql b/migrations/2025-08-01-000055_rename_timestamp_add_at/down.sql similarity index 100% rename from migrations/2025-06-08-084651_rename_timestamp_add_at/down.sql rename to migrations/2025-08-01-000055_rename_timestamp_add_at/down.sql diff --git a/migrations/2025-06-08-084651_rename_timestamp_add_at/up.sql b/migrations/2025-08-01-000055_rename_timestamp_add_at/up.sql similarity index 100% rename from migrations/2025-06-08-084651_rename_timestamp_add_at/up.sql rename to migrations/2025-08-01-000055_rename_timestamp_add_at/up.sql diff --git a/migrations/2025-06-09-114549_person_note/down.sql b/migrations/2025-08-01-000056_person_note/down.sql similarity index 100% rename from migrations/2025-06-09-114549_person_note/down.sql rename to migrations/2025-08-01-000056_person_note/down.sql diff --git a/migrations/2025-06-09-114549_person_note/up.sql b/migrations/2025-08-01-000056_person_note/up.sql similarity index 100% rename from migrations/2025-06-09-114549_person_note/up.sql rename to migrations/2025-08-01-000056_person_note/up.sql diff --git a/migrations/2025-06-11-103308_multi-community/down.sql b/migrations/2025-08-01-000057_multi-community/down.sql similarity index 100% rename from migrations/2025-06-11-103308_multi-community/down.sql rename to migrations/2025-08-01-000057_multi-community/down.sql diff --git a/migrations/2025-06-11-103308_multi-community/up.sql b/migrations/2025-08-01-000057_multi-community/up.sql similarity index 100% rename from migrations/2025-06-11-103308_multi-community/up.sql rename to migrations/2025-08-01-000057_multi-community/up.sql diff --git a/migrations/2025-06-12-164319_instance_block_communities_persons/down.sql b/migrations/2025-08-01-000058_instance_block_communities_persons/down.sql similarity index 100% rename from migrations/2025-06-12-164319_instance_block_communities_persons/down.sql rename to migrations/2025-08-01-000058_instance_block_communities_persons/down.sql diff --git a/migrations/2025-06-12-164319_instance_block_communities_persons/up.sql b/migrations/2025-08-01-000058_instance_block_communities_persons/up.sql similarity index 100% rename from migrations/2025-06-12-164319_instance_block_communities_persons/up.sql rename to migrations/2025-08-01-000058_instance_block_communities_persons/up.sql diff --git a/migrations/2025-06-14-141408_person_votes/down.sql b/migrations/2025-08-01-000059_person_votes/down.sql similarity index 100% rename from migrations/2025-06-14-141408_person_votes/down.sql rename to migrations/2025-08-01-000059_person_votes/down.sql diff --git a/migrations/2025-06-14-141408_person_votes/up.sql b/migrations/2025-08-01-000059_person_votes/up.sql similarity index 100% rename from migrations/2025-06-14-141408_person_votes/up.sql rename to migrations/2025-08-01-000059_person_votes/up.sql diff --git a/migrations/2025-06-24-093800_rename-rate-limit-columns/down.sql b/migrations/2025-08-01-000060_rename-rate-limit-columns/down.sql similarity index 100% rename from migrations/2025-06-24-093800_rename-rate-limit-columns/down.sql rename to migrations/2025-08-01-000060_rename-rate-limit-columns/down.sql diff --git a/migrations/2025-06-24-093800_rename-rate-limit-columns/up.sql b/migrations/2025-08-01-000060_rename-rate-limit-columns/up.sql similarity index 100% rename from migrations/2025-06-24-093800_rename-rate-limit-columns/up.sql rename to migrations/2025-08-01-000060_rename-rate-limit-columns/up.sql diff --git a/migrations/2025-06-26-083302_drop-person-ban/down.sql b/migrations/2025-08-01-000061_drop-person-ban/down.sql similarity index 100% rename from migrations/2025-06-26-083302_drop-person-ban/down.sql rename to migrations/2025-08-01-000061_drop-person-ban/down.sql diff --git a/migrations/2025-06-26-083302_drop-person-ban/up.sql b/migrations/2025-08-01-000061_drop-person-ban/up.sql similarity index 100% rename from migrations/2025-06-26-083302_drop-person-ban/up.sql rename to migrations/2025-08-01-000061_drop-person-ban/up.sql diff --git a/migrations/2025-07-10-105316_username-instance-unique/down.sql b/migrations/2025-08-01-000062_username-instance-unique/down.sql similarity index 100% rename from migrations/2025-07-10-105316_username-instance-unique/down.sql rename to migrations/2025-08-01-000062_username-instance-unique/down.sql diff --git a/migrations/2025-07-10-105316_username-instance-unique/up.sql b/migrations/2025-08-01-000062_username-instance-unique/up.sql similarity index 100% rename from migrations/2025-07-10-105316_username-instance-unique/up.sql rename to migrations/2025-08-01-000062_username-instance-unique/up.sql diff --git a/migrations/2025-07-17-103657_post-or-comment-notification/down.sql b/migrations/2025-08-01-000063_post-or-comment-notification/down.sql similarity index 100% rename from migrations/2025-07-17-103657_post-or-comment-notification/down.sql rename to migrations/2025-08-01-000063_post-or-comment-notification/down.sql diff --git a/migrations/2025-07-17-103657_post-or-comment-notification/up.sql b/migrations/2025-08-01-000063_post-or-comment-notification/up.sql similarity index 100% rename from migrations/2025-07-17-103657_post-or-comment-notification/up.sql rename to migrations/2025-08-01-000063_post-or-comment-notification/up.sql diff --git a/migrations/2025-07-18-033358_add_missing_foreign_key_indexes/down.sql b/migrations/2025-08-01-000064_add_missing_foreign_key_indexes/down.sql similarity index 100% rename from migrations/2025-07-18-033358_add_missing_foreign_key_indexes/down.sql rename to migrations/2025-08-01-000064_add_missing_foreign_key_indexes/down.sql diff --git a/migrations/2025-07-18-033358_add_missing_foreign_key_indexes/up.sql b/migrations/2025-08-01-000064_add_missing_foreign_key_indexes/up.sql similarity index 100% rename from migrations/2025-07-18-033358_add_missing_foreign_key_indexes/up.sql rename to migrations/2025-08-01-000064_add_missing_foreign_key_indexes/up.sql diff --git a/migrations/2025-07-21-081447_group-follow/down.sql b/migrations/2025-08-01-000065_group-follow/down.sql similarity index 100% rename from migrations/2025-07-21-081447_group-follow/down.sql rename to migrations/2025-08-01-000065_group-follow/down.sql diff --git a/migrations/2025-07-21-081447_group-follow/up.sql b/migrations/2025-08-01-000065_group-follow/up.sql similarity index 100% rename from migrations/2025-07-21-081447_group-follow/up.sql rename to migrations/2025-08-01-000065_group-follow/up.sql diff --git a/migrations/2025-07-24-092826_modlog-rename/down.sql b/migrations/2025-08-01-000066_modlog-rename/down.sql similarity index 100% rename from migrations/2025-07-24-092826_modlog-rename/down.sql rename to migrations/2025-08-01-000066_modlog-rename/down.sql diff --git a/migrations/2025-07-24-092826_modlog-rename/up.sql b/migrations/2025-08-01-000066_modlog-rename/up.sql similarity index 100% rename from migrations/2025-07-24-092826_modlog-rename/up.sql rename to migrations/2025-08-01-000066_modlog-rename/up.sql diff --git a/migrations/2025-07-26-230802_add_default_items_per_page/down.sql b/migrations/2025-08-01-000067_add_default_items_per_page/down.sql similarity index 100% rename from migrations/2025-07-26-230802_add_default_items_per_page/down.sql rename to migrations/2025-08-01-000067_add_default_items_per_page/down.sql diff --git a/migrations/2025-07-26-230802_add_default_items_per_page/up.sql b/migrations/2025-08-01-000067_add_default_items_per_page/up.sql similarity index 100% rename from migrations/2025-07-26-230802_add_default_items_per_page/up.sql rename to migrations/2025-08-01-000067_add_default_items_per_page/up.sql diff --git a/migrations/2025-03-11-015056_local_user_trigger/down.sql b/migrations/2025-08-01-000068_local_user_trigger/down.sql similarity index 100% rename from migrations/2025-03-11-015056_local_user_trigger/down.sql rename to migrations/2025-08-01-000068_local_user_trigger/down.sql diff --git a/migrations/2025-03-11-015056_local_user_trigger/up.sql b/migrations/2025-08-01-000068_local_user_trigger/up.sql similarity index 100% rename from migrations/2025-03-11-015056_local_user_trigger/up.sql rename to migrations/2025-08-01-000068_local_user_trigger/up.sql diff --git a/migrations/2025-08-06-170325_add_indexes_for_aggregates_activity_new/down.sql b/migrations/2025-08-06-170325_add_indexes_for_aggregates_activity_new/down.sql new file mode 100644 index 000000000..b9f519fde --- /dev/null +++ b/migrations/2025-08-06-170325_add_indexes_for_aggregates_activity_new/down.sql @@ -0,0 +1,2 @@ +DROP INDEX idx_post_actions_liked_at, idx_comment_actions_liked_at; + diff --git a/migrations/2025-08-06-170325_add_indexes_for_aggregates_activity_new/up.sql b/migrations/2025-08-06-170325_add_indexes_for_aggregates_activity_new/up.sql new file mode 100644 index 000000000..ff39a7ad1 --- /dev/null +++ b/migrations/2025-08-06-170325_add_indexes_for_aggregates_activity_new/up.sql @@ -0,0 +1,8 @@ +CREATE INDEX idx_post_actions_liked_at ON post_actions (liked_at) +WHERE + liked_at IS NOT NULL; + +CREATE INDEX idx_comment_actions_liked_at ON comment_actions (liked_at) +WHERE + liked_at IS NOT NULL; +