@ -50,6 +50,10 @@ You can contribute in the following ways:
If your contributions are accepted into Mastodon, you can request to be paid through [our OpenCollective](https://opencollective.com/mastodon).
If your contributions are accepted into Mastodon, you can request to be paid through [our OpenCollective](https://opencollective.com/mastodon).
## API Changes and Additions
Please note that any changes or additions made to the API should have an accompanying pull request on [our documentation repository](https://github.com/mastodon/documentation).
## Bug reports
## Bug reports
Bug reports and feature suggestions must use descriptive and concise titles and be submitted to [GitHub Issues](https://github.com/mastodon/mastodon/issues). Please use the search function to make sure that you are not submitting duplicates, and that a similar report or request has not already been resolved or rejected.
Bug reports and feature suggestions must use descriptive and concise titles and be submitted to [GitHub Issues](https://github.com/mastodon/mastodon/issues). Please use the search function to make sure that you are not submitting duplicates, and that a similar report or request has not already been resolved or rejected.
"onboarding.follows.empty":"Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.empty":"Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead":"You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.lead":"You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title":"Personalize your home feed",
"onboarding.follows.title":"Personalize your home feed",
"onboarding.profile.discoverable":"Make my profile discoverable",
"onboarding.profile.discoverable_hint":"When you opt in to discoverability on Mastodon, your posts may appear in search results and trending, and your profile may be suggested to people with similar interests to you.",
"onboarding.profile.display_name":"Display name",
"onboarding.profile.display_name":"Display name",
"onboarding.profile.display_name_hint":"Your full name or your fun name…",
"onboarding.profile.display_name_hint":"Your full name or your fun name…",
"onboarding.profile.lead":"You can always complete this later in the settings, where even more customisation options are available.",
"onboarding.profile.lead":"You can always complete this later in the settings, where even more customisation options are available.",
"home.explore_prompt.body":"Via hejmafiŝaro havos miksitajn afiŝojn de kradvortoj kiujn vi elektis sekvi, personoj kiujn vi elektis sekvi, kaj afiŝoj kiujn ili suprenigis.",
"home.explore_prompt.title":"Ĉi tio estas via hejma paĝo en Mastodon.",
"home.hide_announcements":"Kaŝi la anoncojn",
"home.hide_announcements":"Kaŝi la anoncojn",
"home.pending_critical_update.body":"Ĝisdatigu vian servilon de Mastodon kiel eble plej baldau!",
"home.pending_critical_update.title":"Kritika sekurĝisdatigo estas disponebla!",
"home.show_announcements":"Montri anoncojn",
"home.show_announcements":"Montri anoncojn",
"interaction_modal.description.favourite":"Per konto ĉe Mastodon, vi povas stelumiti ĉi tiun afiŝon por sciigi la afiŝanton ke vi aprezigas ŝin kaj konservas por la estonteco.",
"interaction_modal.description.follow":"Kun konto ĉe Mastodon, vi povos sekvi {name} por vidi ties mesaĝojn en via hejmo.",
"interaction_modal.description.follow":"Kun konto ĉe Mastodon, vi povos sekvi {name} por vidi ties mesaĝojn en via hejmo.",
"interaction_modal.description.reblog":"Kun konto ĉe Mastodon, vi povas diskonigi ĉi tiun afiŝon, por ke viaj propraj sekvantoj vidu ĝin.",
"interaction_modal.description.reblog":"Kun konto ĉe Mastodon, vi povas diskonigi ĉi tiun afiŝon, por ke viaj propraj sekvantoj vidu ĝin.",
"interaction_modal.description.reply":"Kun konto ĉe Mastodon, vi povos respondi al ĉi tiu mesaĝo.",
"interaction_modal.description.reply":"Kun konto ĉe Mastodon, vi povos respondi al ĉi tiu mesaĝo.",
"interaction_modal.login.action":"Prenu min hejmen",
"interaction_modal.login.prompt":"Domajno de via hejma servilo, ekz. mastodon.social",
"interaction_modal.no_account_yet":"Ĉu ne estas ĉe Mastodon?",
"interaction_modal.on_another_server":"En alia servilo",
"interaction_modal.on_another_server":"En alia servilo",
"interaction_modal.on_this_server":"En ĉi tiu servilo",
"interaction_modal.on_this_server":"En ĉi tiu servilo",
"interaction_modal.sign_in":"Vi ne estas ensalutita al ĉi tiu servilo.",
"interaction_modal.sign_in_hint":"Gvideto: Tio estas la retejo kie vi registris. Vi ankau povas tajpi vian plenan uzantonomon!",
"interaction_modal.title.favourite":"Stelumi la afiŝon de {name}",
"interaction_modal.title.follow":"Sekvi {name}",
"interaction_modal.title.follow":"Sekvi {name}",
"interaction_modal.title.reblog":"Akceli la afiŝon de {name}",
"interaction_modal.title.reblog":"Akceli la afiŝon de {name}",
"interaction_modal.title.reply":"Respondi al la afiŝo de {name}",
"interaction_modal.title.reply":"Respondi al la afiŝo de {name}",
@ -320,6 +344,8 @@
"keyboard_shortcuts.direct":"por malfermi la kolumnon pri privataj mencioj",
"keyboard_shortcuts.direct":"por malfermi la kolumnon pri privataj mencioj",
"keyboard_shortcuts.down":"iri suben en la listo",
"keyboard_shortcuts.down":"iri suben en la listo",
"keyboard_shortcuts.enter":"malfermi mesaĝon",
"keyboard_shortcuts.enter":"malfermi mesaĝon",
"keyboard_shortcuts.favourite":"Stelumi afiŝon",
"keyboard_shortcuts.favourites":"Malfermi la liston de la stelumoj",
"keyboard_shortcuts.federated":"Malfermi la frataran templinion",
"keyboard_shortcuts.federated":"Malfermi la frataran templinion",
"navigation_bar.opened_in_classic_interface":"Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.",
"navigation_bar.personal":"Persone",
"navigation_bar.personal":"Persone",
"navigation_bar.pins":"Alpinglitaj mesaĝoj",
"navigation_bar.pins":"Alpinglitaj mesaĝoj",
"navigation_bar.preferences":"Preferoj",
"navigation_bar.preferences":"Preferoj",
@ -398,6 +427,7 @@
"not_signed_in_indicator.not_signed_in":"Necesas saluti por aliri tiun rimedon.",
"not_signed_in_indicator.not_signed_in":"Necesas saluti por aliri tiun rimedon.",
"notifications_permission_banner.how_to_control":"Por ricevi sciigojn kiam Mastodon ne estas malfermita, ebligu labortablajn sciigojn. Vi povas regi precize kiuj specoj de interagoj generas labortablajn sciigojn per la supra butono {icon} post kiam ili estas ebligitaj.",
"notifications_permission_banner.how_to_control":"Por ricevi sciigojn kiam Mastodon ne estas malfermita, ebligu labortablajn sciigojn. Vi povas regi precize kiuj specoj de interagoj generas labortablajn sciigojn per la supra butono {icon} post kiam ili estas ebligitaj.",
"onboarding.follows.empty":"Bedaŭrinde, neniu rezulto estas montrebla nuntempe. Vi povas provi serĉi aŭ foliumi la esploran paĝon por trovi kontojn por sekvi, aŭ retrovi baldaŭ.",
"onboarding.follows.empty":"Bedaŭrinde, neniu rezulto estas montrebla nuntempe. Vi povas provi serĉi aŭ foliumi la esploran paĝon por trovi kontojn por sekvi, aŭ retrovi baldaŭ.",
"onboarding.follows.lead":"You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.lead":"You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.profile.discoverable_hint":"Kiam vi aliĝi al trovebleco ĉe Mastodon, viaj afiŝoj eble aperos en serĉaj rezultoj kaj populariĝoj, kaj via profilo eble estas sugestota al personoj kun similaj intereseoj al vi.",
"onboarding.profile.display_name":"Publika nomo",
"onboarding.profile.display_name_hint":"Via plena nomo aŭ via kromnomo…",
"onboarding.profile.lead":"Vi ĉiam povas plenigi ĉi tion poste en la agordoj, kie eĉ pli da personecigagordoj estas disponeblaj.",
"onboarding.profile.note":"Sinprezento",
"onboarding.profile.note_hint":"Vi povas @mencii aliajn homojn aŭ #kradvortojn…",
"onboarding.profile.save_and_continue":"Konservi kaj daŭrigi",
"onboarding.profile.save_and_continue":"Konservi kaj daŭrigi",
"onboarding.start.lead":"Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.lead":"Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip":"Want to skip right ahead?",
"onboarding.start.skip":"Want to skip right ahead?",
"onboarding.start.title":"Vi atingas ĝin!",
"onboarding.start.title":"Vi atingas ĝin!",
@ -460,6 +507,9 @@
"onboarding.steps.setup_profile.title":"Customize your profile",
"onboarding.steps.setup_profile.title":"Customize your profile",
"onboarding.steps.share_profile.body":"Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.body":"Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title":"Share your profile",
"onboarding.steps.share_profile.title":"Share your profile",
"onboarding.tips.2fa":"<strong>Ĉu vi scias?</strong> Vi povas sekurigi vian konton per efektivigi dufaktora autentigo en via kontoagordoj.",
"onboarding.tips.accounts_from_other_servers":"<strong>Ĉu vi scias?</strong> Ĉar Mastodon estas sencentra, kelkaj profiloj kiujn vi trovi estas gastigitaj ĉe aliaj serviloj kiuj ne estas via.",
"onboarding.tips.migration":"<strong>Ĉu vi scias?</strong> Se vi sentas ke {domain} ne estas bona servilelekto por vi en la estonteco, vi povas translokiĝi al alia servilo de Mastodon sen malgajni viajn sekvantojn.",
"password_confirmation.mismatching":"Pasvorto konfirmo ne kongruas",
"password_confirmation.mismatching":"Pasvorto konfirmo ne kongruas",
"timeline_hint.resources.statuses":"Messages plus anciens",
"timeline_hint.resources.statuses":"Messages plus anciens",
"trends.counter_by_accounts":"{count, plural, one {{counter} personne} other {{counter} personnes}} au cours {days, plural, one {des dernières 24h} other {des {days} derniers jours}}",
"trends.counter_by_accounts":"{count, plural, one {{counter} pers.} other {{counter} pers.}} sur {days, plural, one {les dernières 24h} other {les {days} derniers jours}}",
"trends.trending_now":"Tendance en ce moment",
"trends.trending_now":"Tendance en ce moment",
"ui.beforeunload":"Votre brouillon sera perdu si vous quittez Mastodon.",
"ui.beforeunload":"Votre brouillon sera perdu si vous quittez Mastodon.",
"onboarding.follows.empty":"Sajnos jelenleg nem jeleníthető meg eredmény. Kipróbálhatod a keresést vagy böngészheted a felfedező oldalon a követni kívánt személyeket, vagy próbáld meg később.",
"onboarding.follows.empty":"Sajnos jelenleg nem jeleníthető meg eredmény. Kipróbálhatod a keresést vagy böngészheted a felfedező oldalon a követni kívánt személyeket, vagy próbáld meg később.",
"onboarding.follows.lead":"A saját hírfolyamod az elsődleges tapasztalás a Mastodonon. Minél több embert követsz, annál aktívabb és érdekesebb a dolog. Az induláshoz itt van néhány javaslat:",
"onboarding.follows.lead":"A kezdőlapod a Mastodon használatának elsődleges módja. Minél több embert követsz, annál aktívabbak és érdekesebbek lesznek a dolgok. Az induláshoz itt van néhány javaslat:",
"onboarding.follows.title":"Szabd személyre a kezdőlapodat",
"onboarding.follows.title":"Szabd személyre a kezdőlapodat",
"onboarding.profile.discoverable_hint":"A Mastodonon a felfedezhetőség választása esetén a saját bejegyzéseid megjelenhetnek a keresési eredmények és a felkapott tartalmak között, valamint a profilod a hozzád hasonló érdeklődési körrel rendelkező embereknél is ajánlásra kerülhet.",
"onboarding.profile.discoverable_hint":"A Mastodonon a felfedezhetőség választása esetén a saját bejegyzéseid megjelenhetnek a keresési eredmények és a felkapott tartalmak között, valamint a profilod a hozzád hasonló érdeklődési körrel rendelkező embereknél is ajánlásra kerülhet.",
@ -720,7 +720,7 @@
"upload_form.undo":"Törlés",
"upload_form.undo":"Törlés",
"upload_form.video_description":"Leírás siket, hallássérült, vak vagy gyengénlátó emberek számára",
"upload_form.video_description":"Leírás siket, hallássérült, vak vagy gyengénlátó emberek számára",
"upload_modal.analyzing_picture":"Kép elemzése…",
"upload_modal.analyzing_picture":"Kép elemzése…",
"upload_modal.apply":"Alkalmazás",
"upload_modal.apply":"Alkalmaz",
"upload_modal.applying":"Alkalmazás…",
"upload_modal.applying":"Alkalmazás…",
"upload_modal.choose_image":"Kép kiválasztása",
"upload_modal.choose_image":"Kép kiválasztása",
"upload_modal.description_placeholder":"A gyors, barna róka átugrik a lusta kutya fölött",
"upload_modal.description_placeholder":"A gyors, barna róka átugrik a lusta kutya fölött",
"dismissable_banner.explore_links":"These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_links":"These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_tags":"These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_tags":"These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"embed.instructions":"Embed this status on your website by copying the code below.",
"embed.instructions":"Embed this status on your website by copying the code below.",
"emoji_button.food":"cibus et potus",
"emoji_button.food":"Cibus et potus",
"emoji_button.people":"Homines",
"emoji_button.people":"Homines",
"emoji_button.search":"Quaerere...",
"emoji_button.search":"Quaerere...",
"empty_column.account_timeline":"Hic nulla contributa!",
"empty_column.account_timeline":"Hic nulla contributa!",
@ -57,13 +57,13 @@
"empty_column.home":"Your home timeline is empty! Follow more people to fill it up. {suggestions}",
"empty_column.home":"Your home timeline is empty! Follow more people to fill it up. {suggestions}",
"empty_column.list":"There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.list":"There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"explore.trending_statuses":"Contributa",
"explore.trending_statuses":"Contributa",
"generic.saved":"servavit",
"generic.saved":"Servavit",
"hashtag.column_settings.tag_toggle":"Include additional tags in this column",
"hashtag.column_settings.tag_toggle":"Include additional tags in this column",
"keyboard_shortcuts.back":"to navigate back",
"keyboard_shortcuts.back":"Re navigare",
"keyboard_shortcuts.blocked":"to open blocked users list",
"about.disclaimer":"Mastodon नि:शुल्क, खुला स्रोत सफ्टवेयर, र Mastodon gGmbH को ट्रेडमार्क हो।",
"about.domain_blocks.no_reason_available":"कारण उपलब्ध छैन",
"about.domain_blocks.preamble":"Mastodon ले तपाइँलाई सामान्यतया फेडिभर्समा कुनै पनि अन्य सर्भरका सामग्री हेर्न र प्रयोगकर्ताहरूसँग अन्तरक्रिया गर्न दिन्छ। यी अपवादहरू हुन् जुन यस विशेष सर्भरमा बनाइएका छन्।",
"about.domain_blocks.silenced.title":"सीमित",
"about.domain_blocks.suspended.explanation":"यस सर्भरबाट कुनै पनि डेटा प्रशोधन, भण्डारण वा आदानप्रदान गरिने छैन, जसले यस सर्भरका प्रयोगकर्ताहरूसँग कुनै पनि अन्तरक्रिया वा सञ्चारलाई असम्भव बनाउँछ।",
"about.domain_blocks.suspended.title":"निलम्बित",
"about.not_available":"यो जानकारी यस सर्भरमा उपलब्ध गराइएको छैन।",
"about.powered_by":"{mastodon} द्वारा संचालित विकेन्द्रीकृत सामाजिक मिडिया",
"about.rules":"सर्भर नियमहरू",
"account.add_or_remove_from_list":"सूचीबाट थप्नुहोस् वा हटाउनुहोस्",
"about.domain_blocks.silenced.explanation":"Normalmente não verá perfis e conteúdo deste servidor, a menos que os procure explicitamente ou opte por os seguir.",
"about.domain_blocks.silenced.explanation":"Normalmente não verá perfis e conteúdo deste servidor, a menos que os procure explicitamente ou opte por os seguir.",
"about.domain_blocks.silenced.title":"Limitados",
"about.domain_blocks.silenced.title":"Limitados",
"about.domain_blocks.suspended.explanation":"Nenhum dado deste servidor será processado, armazenado ou trocado, impossibilitando qualquer interação ou comunicação com os utilizadores dessas instâncias.",
"about.domain_blocks.suspended.explanation":"Nenhum dado deste servidor será processado, armazenado ou trocado, impossibilitando qualquer interação ou comunicação com os utilizadores dessas instâncias.",
totals_time_period_hint_html:The totals displayed below include data for all time.
totals_time_period_hint_html:The totals displayed below include data for all time.
unknown_instance:There is currently no record of this domain on this server.
invites:
invites:
deactivate_all:Deactivate all
deactivate_all:Deactivate all
filter:
filter:
@ -610,6 +611,7 @@ en-GB:
created_at:Reported
created_at:Reported
delete_and_resolve:Delete posts
delete_and_resolve:Delete posts
forwarded:Forwarded
forwarded:Forwarded
forwarded_replies_explanation:This report is from a remote user and about remote content. It has been forwarded to you because the reported content is in reply to one of your users.
forwarded_to:Forwarded to %{domain}
forwarded_to:Forwarded to %{domain}
mark_as_resolved:Mark as resolved
mark_as_resolved:Mark as resolved
mark_as_sensitive:Mark as sensitive
mark_as_sensitive:Mark as sensitive
@ -1038,6 +1040,14 @@ en-GB:
hint_html:Just one more thing! We need to confirm you're a human (this is so we can keep the spam out!). Solve the CAPTCHA below and click "Continue".
hint_html:Just one more thing! We need to confirm you're a human (this is so we can keep the spam out!). Solve the CAPTCHA below and click "Continue".
title:Security check
title:Security check
confirmations:
confirmations:
awaiting_review:Your e-mail address is confirmed! The %{domain} staff is now reviewing your registration. You will receive an e-mail if they approve your account!
awaiting_review_title:Your registration is being reviewed
clicking_this_link:clicking this link
login_link:log in
proceed_to_login_html:You can now proceed to %{login_link}.
redirect_to_app_html:You should have been redirected to the <strong>%{app_name}</strong> app. If that did not happen, try %{clicking_this_link} or manually return to the app.
registration_complete:Your registration on %{domain} is now complete!
welcome_title:Welcome, %{name}!
wrong_email_hint:If that e-mail address is not correct, you can change it in account settings.
wrong_email_hint:If that e-mail address is not correct, you can change it in account settings.
delete_account:Delete account
delete_account:Delete account
delete_account_html:If you wish to delete your account, you can <a href="%{path}">proceed here</a>. You will be asked for confirmation.
delete_account_html:If you wish to delete your account, you can <a href="%{path}">proceed here</a>. You will be asked for confirmation.
@ -1099,6 +1109,7 @@ en-GB:
functional:Your account is fully operational.
functional:Your account is fully operational.
pending:Your application is pending review by our staff. This may take some time. You will receive an e-mail if your application is approved.
pending:Your application is pending review by our staff. This may take some time. You will receive an e-mail if your application is approved.
redirecting_to:Your account is inactive because it is currently redirecting to %{acct}.
redirecting_to:Your account is inactive because it is currently redirecting to %{acct}.
self_destruct:As %{domain} is closing down, you will only get limited access to your account.
view_strikes:View past strikes against your account
view_strikes:View past strikes against your account
too_fast:Form submitted too fast, try again.
too_fast:Form submitted too fast, try again.
use_security_key:Use security key
use_security_key:Use security key
@ -1356,6 +1367,7 @@ en-GB:
'86400':1day
'86400':1day
expires_in_prompt:Never
expires_in_prompt:Never
generate:Generate invite link
generate:Generate invite link
invalid:This invite is not valid
invited_by:'You were invited by:'
invited_by:'You were invited by:'
max_uses:
max_uses:
one:1use
one:1use
@ -1568,6 +1580,9 @@ en-GB:
over_daily_limit:You have exceeded the limit of %{limit} scheduled posts for today
over_daily_limit:You have exceeded the limit of %{limit} scheduled posts for today
over_total_limit:You have exceeded the limit of %{limit} scheduled posts
over_total_limit:You have exceeded the limit of %{limit} scheduled posts
too_soon:The scheduled date must be in the future
too_soon:The scheduled date must be in the future
self_destruct:
lead_html:Unfortunately, <strong>%{domain}</strong> is permanently closing down. If you had an account there, you will not be able to continue using it, but you can still request a backup of your data.
title:This server is closing down
sessions:
sessions:
activity:Last activity
activity:Last activity
browser:Browser
browser:Browser
@ -1736,6 +1751,7 @@ en-GB:
default:"%b %d, %Y, %H:%M"
default:"%b %d, %Y, %H:%M"
month:"%b %Y"
month:"%b %Y"
time:"%H:%M"
time:"%H:%M"
with_time_zone:"%b %d, %Y, %H:%M %Z"
translation:
translation:
errors:
errors:
quota_exceeded:The server-wide usage quota for the translation service has been exceeded.
quota_exceeded:The server-wide usage quota for the translation service has been exceeded.
ActiveRecord::Base.connection.add_index:users,['reset_password_token'],name:'index_users_on_reset_password_token',unique:true,where:'reset_password_token IS NOT NULL',opclass::text_pattern_ops
ActiveRecord::Base.connection.add_index:users,['reset_password_token'],name:'index_users_on_reset_password_token',unique:true,where:'reset_password_token IS NOT NULL',opclass::text_pattern_ops
end
end
ActiveRecord::Base.connection.execute('REINDEX INDEX index_users_on_unconfirmed_email;')ifActiveRecord::Migrator.current_version >=2023_07_02_151753
ActiveRecord::Base.connection.execute('REINDEX INDEX index_users_on_unconfirmed_email;')ifmigrator_version >=2023_07_02_151753
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users WHERE remember_token IS NOT NULL GROUP BY remember_token HAVING count(*) > 1").eachdo|row|
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM users WHERE remember_token IS NOT NULL GROUP BY remember_token HAVING count(*) > 1").eachdo|row|
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM announcement_reactions GROUP BY account_id, announcement_id, name HAVING count(*) > 1").eachdo|row|
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM announcement_reactions GROUP BY account_id, announcement_id, name HAVING count(*) > 1").eachdo|row|
ActiveRecord::Base.connection.add_index:conversations,['uri'],name:'index_conversations_on_uri',unique:true,where:'uri IS NOT NULL',opclass::text_pattern_ops
ActiveRecord::Base.connection.add_index:conversations,['uri'],name:'index_conversations_on_uri',unique:true,where:'uri IS NOT NULL',opclass::text_pattern_ops
ActiveRecord::Base.connection.add_index:media_attachments,['shortcode'],name:'index_media_attachments_on_shortcode',unique:true,where:'shortcode IS NOT NULL',opclass::text_pattern_ops
ActiveRecord::Base.connection.add_index:media_attachments,['shortcode'],name:'index_media_attachments_on_shortcode',unique:true,where:'shortcode IS NOT NULL',opclass::text_pattern_ops
ActiveRecord::Base.connection.execute'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower_btree ON tags (lower(name) text_pattern_ops)'
ActiveRecord::Base.connection.execute'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower_btree ON tags (lower(name) text_pattern_ops)'
@ -707,12 +707,16 @@ module Mastodon::CLI
end
end
end
end
defmigrator_version
ActiveRecord::Migrator.current_version
end
deffind_duplicate_accounts
deffind_duplicate_accounts
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM accounts GROUP BY lower(username), COALESCE(lower(domain), '') HAVING count(*) > 1")
ActiveRecord::Base.connection.select_all("SELECT string_agg(id::text, ',') AS ids FROM accounts GROUP BY lower(username), COALESCE(lower(domain), '') HAVING count(*) > 1")