0
0
Fork 0

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
This commit is contained in:
Eugen Rochko 2017-09-01 16:20:16 +02:00 committed by GitHub
parent 2305f7c391
commit 7dc5035031
13 changed files with 186 additions and 64 deletions

View file

@ -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