Fix crash in `tootctl status remove` and some old migrations (#26210)
This commit is contained in:
parent
6308dca76a
commit
425d77f812
|
@ -45,7 +45,7 @@ class CopyStatusStats < ActiveRecord::Migration[5.2]
|
||||||
# We cannot use bulk INSERT or overarching transactions here because of possible
|
# We cannot use bulk INSERT or overarching transactions here because of possible
|
||||||
# uniqueness violations that we need to skip over
|
# uniqueness violations that we need to skip over
|
||||||
Status.unscoped.select('id, reblogs_count, favourites_count, created_at, updated_at').find_each do |status|
|
Status.unscoped.select('id, reblogs_count, favourites_count, created_at, updated_at').find_each do |status|
|
||||||
params = [[nil, status.id], [nil, status.reblogs_count], [nil, status.favourites_count], [nil, status.created_at], [nil, status.updated_at]]
|
params = [status.id, status.reblogs_count, status.favourites_count, status.created_at, status.updated_at]
|
||||||
exec_insert('INSERT INTO status_stats (status_id, reblogs_count, favourites_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5)', nil, params)
|
exec_insert('INSERT INTO status_stats (status_id, reblogs_count, favourites_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5)', nil, params)
|
||||||
rescue ActiveRecord::RecordNotUnique
|
rescue ActiveRecord::RecordNotUnique
|
||||||
next
|
next
|
||||||
|
|
|
@ -45,7 +45,7 @@ class CopyAccountStats < ActiveRecord::Migration[5.2]
|
||||||
# We cannot use bulk INSERT or overarching transactions here because of possible
|
# We cannot use bulk INSERT or overarching transactions here because of possible
|
||||||
# uniqueness violations that we need to skip over
|
# uniqueness violations that we need to skip over
|
||||||
Account.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account|
|
Account.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account|
|
||||||
params = [[nil, account.id], [nil, account[:statuses_count]], [nil, account[:following_count]], [nil, account[:followers_count]], [nil, account.created_at], [nil, account.updated_at]]
|
params = [account.id, account[:statuses_count], account[:following_count], account[:followers_count], account.created_at, account.updated_at]
|
||||||
exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params)
|
exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params)
|
||||||
rescue ActiveRecord::RecordNotUnique
|
rescue ActiveRecord::RecordNotUnique
|
||||||
next
|
next
|
||||||
|
|
|
@ -61,7 +61,7 @@ module Mastodon::CLI
|
||||||
# Skip accounts followed by local accounts
|
# Skip accounts followed by local accounts
|
||||||
clean_followed_sql = 'AND NOT EXISTS (SELECT 1 FROM follows WHERE statuses.account_id = follows.target_account_id)' unless options[:clean_followed]
|
clean_followed_sql = 'AND NOT EXISTS (SELECT 1 FROM follows WHERE statuses.account_id = follows.target_account_id)' unless options[:clean_followed]
|
||||||
|
|
||||||
ActiveRecord::Base.connection.exec_insert(<<-SQL.squish, 'SQL', [[nil, max_id]])
|
ActiveRecord::Base.connection.exec_insert(<<-SQL.squish, 'SQL', [max_id])
|
||||||
INSERT INTO statuses_to_be_deleted (id)
|
INSERT INTO statuses_to_be_deleted (id)
|
||||||
SELECT statuses.id FROM statuses WHERE deleted_at IS NULL AND NOT local AND uri IS NOT NULL AND (id < $1)
|
SELECT statuses.id FROM statuses WHERE deleted_at IS NULL AND NOT local AND uri IS NOT NULL AND (id < $1)
|
||||||
AND NOT EXISTS (SELECT 1 FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)
|
AND NOT EXISTS (SELECT 1 FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)
|
||||||
|
|
Reference in New Issue