You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mastodon/db/migrate
Claire 4ac78e2a06
Add feature to automatically delete old toots (#16529)
* Add account statuses cleanup policy model

* Record last inspected toot to delete to speed up successive calls to statuses_to_delete

* Add service to cleanup a given account's statuses within a budget

* Add worker to go through account policies and delete old toots

* Fix last inspected status id logic

All existing statuses older or equal to last inspected status id must be
kept by the current policy. This is an invariant that must be kept so that
resuming deletion from the last inspected status remains sound.

* Add tests

* Refactor scheduler and add tests

* Add user interface

* Add support for discriminating based on boosts/favs

* Add UI support for min_reblogs and min_favs, rework UI

* Address first round of review comments

* Replace Snowflake#id_at_start with with_random parameter

* Add tests

* Add tests for StatusesCleanupController

* Rework settings page

* Adjust load-avoiding mechanisms

* Please CodeClimate
4 years ago
..
20160220174730_create_accounts.rb
20160220211917_create_statuses.rb
20160221003140_create_users.rb
20160221003621_create_follows.rb
20160222122600_create_stream_entries.rb
20160222143943_add_profile_fields_to_accounts.rb
20160223162837_add_metadata_to_statuses.rb
20160223164502_make_uris_nullable_in_statuses.rb
20160223165723_add_url_to_statuses.rb Prepare Mastodon for zeitwerk autoloader (#15917) 4 years ago
20160223165855_add_url_to_accounts.rb Prepare Mastodon for zeitwerk autoloader (#15917) 4 years ago
20160223171800_create_favourites.rb
20160224223247_create_mentions.rb
20160227230233_add_attachment_avatar_to_accounts.rb
20160305115639_add_devise_to_users.rb
20160306172223_create_doorkeeper_tables.rb
20160312193225_add_attachment_header_to_accounts.rb
20160314164231_add_owner_to_application.rb
20160316103650_add_missing_indices.rb
20160322193748_add_avatar_remote_url_to_accounts.rb Prepare Mastodon for zeitwerk autoloader (#15917) 4 years ago
20160325130944_add_admin_to_users.rb
20160826155805_add_superapp_to_oauth_applications.rb
20160905150353_create_media_attachments.rb
20160919221059_add_subscription_expires_at_to_accounts.rb
20160920003904_remove_verify_token_from_accounts.rb
20160926213048_remove_owner_from_application.rb
20161003142332_add_confirmable_to_users.rb
20161003145426_create_blocks.rb
20161006213403_rails_settings_migration.rb Further preparation for Rails 6 (#15916) 4 years ago
20161009120834_create_domain_blocks.rb
20161027172456_add_silenced_to_accounts.rb
20161104173623_create_tags.rb
20161105130633_create_statuses_tags_join_table.rb
20161116162355_add_locale_to_users.rb
20161119211120_create_notifications.rb
20161122163057_remove_unneeded_indexes.rb
20161123093447_add_sensitive_to_statuses.rb
20161128103007_create_subscriptions.rb
20161130142058_add_last_successful_delivery_at_to_subscriptions.rb
20161130185319_add_visibility_to_statuses.rb
20161202132159_add_in_reply_to_account_id_to_statuses.rb
20161203164520_add_from_account_id_to_notifications.rb
20161205214545_add_suspended_to_accounts.rb
20161221152630_add_hidden_to_stream_entries.rb
20161222201034_add_locked_to_accounts.rb
20161222204147_create_follow_requests.rb
20170105224407_add_shortcode_to_media_attachments.rb
20170109120109_create_web_settings.rb
20170112154826_migrate_settings.rb
20170114194937_add_application_to_statuses.rb
20170114203041_add_website_to_oauth_application.rb
20170119214911_create_preview_cards.rb
20170123162658_add_severity_to_domain_blocks.rb
20170123203248_add_reject_media_to_domain_blocks.rb
20170125145934_add_spoiler_text_to_statuses.rb
20170127165745_add_devise_two_factor_to_users.rb
20170205175257_remove_devices.rb
20170209184350_add_reply_to_statuses.rb
20170214110202_create_reports.rb
20170217012631_add_reblog_of_id_foreign_key_to_statuses.rb
20170301222600_create_mutes.rb
20170303212857_add_last_emailed_at_to_users.rb
20170304202101_add_type_to_media_attachments.rb
20170317193015_add_search_index_to_accounts.rb
20170318214217_add_header_remote_url_to_accounts.rb Prepare Mastodon for zeitwerk autoloader (#15917) 4 years ago
20170322021028_add_lowercase_index_to_accounts.rb
20170322143850_change_primary_key_to_bigint_on_statuses.rb
20170322162804_add_search_index_to_tags.rb
20170330021336_add_counter_caches.rb
20170330163835_create_imports.rb
20170330164118_add_attachment_data_to_imports.rb
20170403172249_add_action_taken_by_account_id_to_reports.rb
20170405112956_add_index_on_mentions_status_id.rb
20170406215816_add_notifications_and_favourites_indices.rb
20170409170753_add_last_webfingered_at_to_accounts.rb
20170414080609_add_devise_two_factor_backupable_to_users.rb
20170414132105_add_language_to_statuses.rb
20170418160728_add_indexes_to_reports_for_accounts.rb
20170423005413_add_allowed_languages_to_user.rb
20170424003227_create_account_domain_blocks.rb
20170424112722_add_status_id_index_to_statuses_tags.rb
20170425131920_add_media_attachment_meta.rb
20170425202925_add_oembed_to_preview_cards.rb
20170427011934_re_add_owner_to_application.rb
20170506235850_create_conversations.rb
20170507000211_add_conversation_id_to_statuses.rb
20170507141759_optimize_index_subscriptions.rb
20170508230434_create_conversation_mutes.rb
20170516072309_add_index_accounts_on_uri.rb
20170520145338_change_language_filter_to_opt_out.rb
20170601210557_add_index_on_media_attachments_account_id.rb
20170604144747_add_foreign_keys_for_accounts.rb
20170606113804_change_tag_search_index_to_btree.rb
20170609145826_remove_default_language_from_statuses.rb
20170610000000_add_statuses_index_on_account_id_id.rb
20170623152212_create_session_activations.rb
20170624134742_add_description_to_session_activations.rb
20170625140443_add_access_token_id_to_session_activations.rb
20170711225116_fix_null_booleans.rb
20170713112503_make_tag_search_case_insensitive.rb
20170713175513_create_web_push_subscriptions.rb
20170713190709_add_web_push_subscription_to_session_activations.rb
20170714184731_add_domain_to_subscriptions.rb
20170716191202_add_hide_notifications_to_mute.rb
20170718211102_add_activitypub_to_accounts.rb
20170720000000_add_index_favourites_on_account_id_and_id.rb
20170823162448_create_status_pins.rb
20170824103029_add_timestamps_to_status_pins.rb
20170829215220_remove_status_pins_account_index.rb
20170901141119_truncate_preview_cards.rb
20170901142658_create_join_table_preview_cards_statuses.rb
20170905044538_add_index_id_account_id_activity_type_on_notifications.rb
20170905165803_add_local_to_statuses.rb
20170913000752_create_site_uploads.rb
20170917153509_create_custom_emojis.rb
20170918125918_ids_to_bigints.rb
20170920024819_status_ids_to_timestamp_ids.rb Use more robust hook for loading timestamp_id function into database (#15919) 4 years ago
20170920032311_fix_reblogs_in_feeds.rb
20170924022025_ids_to_bigints2.rb
20170927215609_add_description_to_media_attachments.rb
20170928082043_create_email_domain_blocks.rb
20171005102658_create_account_moderation_notes.rb
20171005171936_add_disabled_to_custom_emojis.rb
20171006142024_add_uri_to_custom_emojis.rb
20171010023049_add_foreign_key_to_account_moderation_notes.rb
20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb
20171020084748_add_visible_in_picker_to_custom_emoji.rb
20171028221157_add_reblogs_to_follows.rb
20171107143332_add_memorial_to_accounts.rb
20171107143624_add_disabled_to_users.rb
20171109012327_add_moderator_to_accounts.rb
20171114080328_add_index_domain_to_email_domain_blocks.rb
20171114231651_create_lists.rb
20171116161857_create_list_accounts.rb
20171118012443_add_moved_to_account_id_to_accounts.rb
20171119172437_create_admin_action_logs.rb Further preparation for Rails 6 (#15916) 4 years ago
20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb
20171125024930_create_invites.rb
20171125031751_add_invite_id_to_users.rb
20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb
20171125190735_remove_old_reblog_index_on_statuses.rb
20171129172043_add_index_on_stream_entries.rb
20171130000000_add_embed_url_to_preview_cards.rb Prepare Mastodon for zeitwerk autoloader (#15917) 4 years ago
20171201000000_change_account_id_nonnullable_in_lists.rb
20171212195226_remove_duplicate_indexes_in_lists.rb
20171226094803_more_faster_index_on_notifications.rb
20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb
20180109143959_add_remember_token_to_users.rb
20180204034416_create_identities.rb
20180206000000_change_user_id_nonnullable.rb
20180211015820_create_backups.rb
20180304013859_add_featured_collection_url_to_accounts.rb Prepare Mastodon for zeitwerk autoloader (#15917) 4 years ago
20180310000000_change_columns_in_notifications_nonnullable.rb
20180402031200_add_assigned_account_id_to_reports.rb
20180402040909_create_report_notes.rb
20180410204633_add_fields_to_accounts.rb
20180416210259_add_uri_to_relationships.rb
20180506221944_add_actor_type_to_accounts.rb
20180510214435_add_access_token_id_to_web_push_subscriptions.rb
20180510230049_migrate_web_push_subscriptions.rb
20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb
20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
20180528141303_fix_accounts_unique_index.rb Further preparation for Rails 6 (#15916) 4 years ago
20180608213548_reject_following_blocked_users.rb
20180609104432_migrate_web_push_subscriptions2.rb
20180615122121_add_autofollow_to_invites.rb
20180616192031_add_chosen_languages_to_users.rb
20180617162849_remove_unused_indexes.rb
20180628181026_create_custom_filters.rb
20180707154237_add_whole_word_to_custom_filter.rb
20180711152640_create_relays.rb
20180808175627_create_account_pins.rb
20180812123222_change_relays_enabled.rb
20180812162710_create_status_stats.rb
20180812173710_copy_status_stats.rb
20180814171349_add_confidential_to_doorkeeper_application.rb
20180820232245_add_foreign_key_indices.rb
20180831171112_create_bookmarks.rb
20180929222014_create_account_conversations.rb
20181007025445_create_pghero_space_stats.rb
20181010141500_add_silent_to_mentions.rb
20181017170937_add_reject_reports_to_domain_blocks.rb
20181018205649_add_unread_to_account_conversations.rb
20181024224956_migrate_account_conversations.rb Further preparation for Rails 6 (#15916) 4 years ago
20181026034033_remove_faux_remote_account_duplicates.rb
20181116165755_create_account_stats.rb
20181116173541_copy_account_stats.rb
20181127130500_identity_id_to_bigint.rb
20181127165847_add_show_replies_to_lists.rb Add configuration option to filter replies in lists (#9205) 5 years ago
20181203003808_create_accounts_tags_join_table.rb
20181203021853_add_discoverable_to_accounts.rb
20181204193439_add_last_status_at_to_account_stats.rb
20181204215309_create_account_tag_stats.rb
20181207011115_downcase_custom_emoji_domains.rb Further preparation for Rails 6 (#15916) 4 years ago
20181213184704_create_account_warnings.rb
20181213185533_create_account_warning_presets.rb
20181219235220_add_created_by_application_id_to_users.rb
20181226021420_add_also_known_as_to_accounts.rb
20190103124649_create_scheduled_statuses.rb
20190103124754_add_scheduled_status_id_to_media_attachments.rb
20190117114553_create_tombstones.rb
20190201012802_add_overwrite_to_imports.rb
20190203180359_create_featured_tags.rb
20190225031541_create_polls.rb
20190225031625_create_poll_votes.rb
20190226003449_add_poll_id_to_statuses.rb
20190304152020_add_uri_to_poll_votes.rb
20190306145741_add_lock_version_to_polls.rb
20190307234537_add_approved_to_users.rb
20190314181829_migrate_open_registrations_setting.rb
20190316190352_create_account_identity_proofs.rb
20190317135723_add_uri_to_reports.rb
20190403141604_add_comment_to_invites.rb
20190409054914_create_user_invite_requests.rb
20190420025523_add_blurhash_to_media_attachments.rb
20190509164208_add_by_moderator_to_tombstone.rb
20190511134027_add_silenced_at_suspended_at_to_accounts.rb
20190529143559_preserve_old_layout_for_existing_users.rb
20190627222225_create_custom_emoji_categories.rb
20190627222826_add_category_id_to_custom_emojis.rb
20190701022101_add_trust_level_to_accounts.rb
20190705002136_create_domain_allows.rb
20190715164535_add_instance_actor.rb
20190726175042_add_case_insensitive_index_to_tags.rb Fix migration script not being able to run if it fails midway (#16312) 4 years ago
20190729185330_add_score_to_tags.rb
20190805123746_add_capabilities_to_tags.rb
20190807135426_add_comments_to_domain_blocks.rb
20190815225426_add_last_status_at_to_tags.rb
20190819134503_add_deleted_at_to_statuses.rb
20190820003045_update_statuses_index.rb
20190823221802_add_local_index_to_statuses.rb
20190901035623_add_max_score_to_tags.rb
20190904222339_create_markers.rb
20190914202517_create_account_migrations.rb
20190915194355_create_account_aliases.rb
20190917213523_add_remember_token_index.rb
20190927232842_add_voters_count_to_polls.rb
20191001213028_add_lock_version_to_account_stats.rb
20191007013357_update_pt_locales.rb
20191031163205_change_list_account_follow_nullable.rb
20191212003415_increase_backup_size.rb
20191212163405_add_hide_collections_to_accounts.rb
20191218153258_create_announcements.rb
20200113125135_create_announcement_mutes.rb
20200114113335_create_announcement_reactions.rb
20200119112504_add_public_index_to_statuses.rb
20200126203551_add_published_at_to_announcements.rb
20200306035625_add_processing_to_media_attachments.rb
20200309150742_add_forwarded_to_reports.rb Add indication to admin UI of whether a report has been forwarded (#13237) 4 years ago
20200312144258_add_title_to_account_warning_presets.rb
20200312162302_add_status_ids_to_announcements.rb
20200312185443_add_parent_id_to_email_domain_blocks.rb
20200317021758_add_expires_at_to_mutes.rb Add duration parameter to muting. (#13831) 4 years ago
20200407201300_create_unavailable_domains.rb
20200407202420_migrate_unavailable_inboxes.rb
20200417125749_add_storage_schema_version.rb
20200508212852_reset_unique_jobs_locks.rb Change references to tootsuite/mastodon to mastodon/mastodon (#16491) 4 years ago
20200510110808_reset_web_app_secret.rb
20200510181721_remove_duplicated_indexes_pghero.rb Fix RemoveDuplicatedIndexesPghero to check for the existence of the index (#14259) 5 years ago
20200516180352_create_devices.rb
20200516183822_create_one_time_keys.rb
20200518083523_create_encrypted_messages.rb
20200521180606_encrypted_message_ids_to_timestamp_ids.rb
20200529214050_add_devices_url_to_accounts.rb Prepare Mastodon for zeitwerk autoloader (#15917) 4 years ago
20200601222558_create_system_keys.rb
20200605155027_add_blurhash_to_preview_cards.rb Add blurhash to preview cards (#13984) 5 years ago
20200608113046_add_sign_in_token_to_users.rb Add e-mail-based sign in challenge for users with disabled 2FA (#14013) 5 years ago
20200614002136_add_sensitized_to_accounts.rb Add account sensitized (#14361) 4 years ago
20200620164023_add_fixed_lowercase_index_to_accounts.rb Fix migration script not being able to run if it fails midway (#16312) 4 years ago
20200622213645_media_attachment_ids_to_timestamp_ids.rb Fix media attachments enumeration (#14254) 5 years ago
20200627125810_add_thumbnail_columns_to_media_attachments.rb Add customizable thumbnails for audio and video attachments (#14145) 5 years ago
20200628133322_create_account_notes.rb Add user notes on accounts (#14148) 5 years ago
20200630190240_create_webauthn_credentials.rb Add WebAuthn as an alternative 2FA method (#14466) 5 years ago
20200630190544_add_webauthn_id_to_users.rb Add WebAuthn as an alternative 2FA method (#14466) 5 years ago
20200908193330_create_account_deletion_requests.rb Change account suspensions to be reversible by default (#14726) 5 years ago
20200917192924_add_notify_to_follows.rb Add option to be notified when a followed user posts (#13546) 4 years ago
20200917193034_add_type_to_notifications.rb Add option to be notified when a followed user posts (#13546) 4 years ago
20200917222316_add_index_notifications_on_type.rb Add option to be notified when a followed user posts (#13546) 4 years ago
20201008202037_create_ip_blocks.rb Add IP-based rules (#14963) 4 years ago
20201008220312_add_sign_up_ip_to_users.rb Add IP-based rules (#14963) 4 years ago
20201017233919_add_suspension_origin_to_accounts.rb Add support for reversible suspensions through ActivityPub (#14989) 4 years ago
20201206004238_create_instances.rb Fix performance on instances list in admin UI (#15282) 4 years ago
20201218054746_add_obfuscate_to_domain_blocks.rb Add option to obfuscate domain name in public list of domain blocks (#15355) 4 years ago
20210221045109_create_rules.rb Add server rules (#15769) 4 years ago
20210306164523_account_ids_to_timestamp_ids.rb Change account ids to snowflake ids (#15844) 4 years ago
20210322164601_create_account_summaries.rb Do not populate AccountSummaries and FollowRecommendation views on migration (#16173) 4 years ago
20210323114347_create_follow_recommendations.rb Add cold-start follow recommendations (#15945) 4 years ago
20210324171613_create_follow_recommendation_suppressions.rb Add cold-start follow recommendations (#15945) 4 years ago
20210416200740_create_canonical_email_blocks.rb Fix missing on_delete: :cascade for canonical_email_blocks foreign key (#16448) 4 years ago
20210421121431_add_case_insensitive_btree_index_to_tags.rb Fix migration script not being able to run if it fails midway (#16312) 4 years ago
20210425135952_add_index_on_media_attachments_account_id_status_id.rb Further improve the media attached status query for accounts (#16106) 4 years ago
20210505174616_update_follow_recommendations_to_version_2.rb Do not populate AccountSummaries and FollowRecommendation views on migration (#16173) 4 years ago
20210609202149_create_login_activities.rb Add authentication history (#16408) 4 years ago
20210621221010_add_skip_sign_in_token_to_users.rb Add ability to skip sign-in token authentication for specific users (#16427) 4 years ago
20210630000137_fix_canonical_email_blocks_foreign_key.rb Fix missing on_delete: :cascade for canonical_email_blocks foreign key (#16448) 4 years ago
20210722120340_create_account_statuses_cleanup_policies.rb Add feature to automatically delete old toots (#16529) 4 years ago