diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-09-01 16:20:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-01 16:20:16 +0200 |
commit | 7dc5035031a697e7a2726fcd787fc9c294751027 (patch) | |
tree | ad2e2fe24ba604c07e4c329315efdf1479759cc8 /lib | |
parent | 2305f7c391325c7abf8746ebb2bb560c13df4437 (diff) |
Make PreviewCard records reuseable between statuses (#4642)
* Make PreviewCard records reuseable between statuses **Warning!** Migration truncates preview_cards tablec * Allow a wider thumbnail for link preview, display it in horizontal layout (#4648) * Delete preview cards files before truncating * Rename old table instead of truncating it * Add mastodon:maintenance:remove_deprecated_preview_cards * Ignore deprecated_preview_cards in schema definition * Fix null behaviour
Diffstat (limited to 'lib')
-rw-r--r-- | lib/tasks/mastodon.rake | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 870fd7e4e..f04201a3c 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -270,5 +270,28 @@ namespace :mastodon do ActiveRecord::Base.connection.execute('UPDATE media_attachments SET account_id = NULL FROM media_attachments ma LEFT JOIN accounts a ON a.id = ma.account_id WHERE media_attachments.id = ma.id AND ma.account_id IS NOT NULL AND a.id IS NULL') ActiveRecord::Base.connection.execute('UPDATE reports SET action_taken_by_account_id = NULL FROM reports r LEFT JOIN accounts a ON a.id = r.action_taken_by_account_id WHERE reports.id = r.id AND r.action_taken_by_account_id IS NOT NULL AND a.id IS NULL') end + + desc 'Remove deprecated preview cards' + task remove_deprecated_preview_cards: :environment do + return unless ActiveRecord::Base.connection.table_exists? 'deprecated_preview_cards' + + class DeprecatedPreviewCard < PreviewCard + self.table_name = 'deprecated_preview_cards' + end + + puts 'Delete records and associated files from deprecated preview cards? [y/N]: ' + confirm = STDIN.gets.chomp + + if confirm.casecmp?('y') + DeprecatedPreviewCard.in_batches.destroy_all + + puts 'Drop deprecated preview cards table? [y/N]: ' + confirm = STDIN.gets.chomp + + if confirm.casecmp?('y') + ActiveRecord::Migration.drop_table :deprecated_preview_cards + end + end + end end end |