Fix interactive delays in database migrations with no TTY (#12969)
Fix #12587
This commit is contained in:
parent
10e209d8e0
commit
4363d06986
|
@ -70,6 +70,7 @@ class IdsToBigints < ActiveRecord::Migration[5.1]
|
||||||
included_columns << [:deprecated_preview_cards, :id] if table_exists?(:deprecated_preview_cards)
|
included_columns << [:deprecated_preview_cards, :id] if table_exists?(:deprecated_preview_cards)
|
||||||
|
|
||||||
# Print out a warning that this will probably take a while.
|
# Print out a warning that this will probably take a while.
|
||||||
|
if $stdout.isatty
|
||||||
say ''
|
say ''
|
||||||
say 'WARNING: This migration may take a *long* time for large instances'
|
say 'WARNING: This migration may take a *long* time for large instances'
|
||||||
say 'It will *not* lock tables for any significant time, but it may run'
|
say 'It will *not* lock tables for any significant time, but it may run'
|
||||||
|
@ -85,6 +86,7 @@ class IdsToBigints < ActiveRecord::Migration[5.1]
|
||||||
say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true
|
say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true
|
||||||
sleep 1
|
sleep 1
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
tables = included_columns.map(&:first).uniq
|
tables = included_columns.map(&:first).uniq
|
||||||
table_sizes = {}
|
table_sizes = {}
|
||||||
|
|
|
@ -20,6 +20,7 @@ class FixAccountsUniqueIndex < ActiveRecord::Migration[5.2]
|
||||||
disable_ddl_transaction!
|
disable_ddl_transaction!
|
||||||
|
|
||||||
def up
|
def up
|
||||||
|
if $stdout.isatty
|
||||||
say ''
|
say ''
|
||||||
say 'WARNING: This migration may take a *long* time for large instances'
|
say 'WARNING: This migration may take a *long* time for large instances'
|
||||||
say 'It will *not* lock tables for any significant time, but it may run'
|
say 'It will *not* lock tables for any significant time, but it may run'
|
||||||
|
@ -34,6 +35,7 @@ class FixAccountsUniqueIndex < ActiveRecord::Migration[5.2]
|
||||||
say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true
|
say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true
|
||||||
sleep 1
|
sleep 1
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
duplicates = Account.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM accounts GROUP BY lower(username), lower(domain) HAVING count(*) > 1').to_hash
|
duplicates = Account.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM accounts GROUP BY lower(username), lower(domain) HAVING count(*) > 1').to_hash
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2]
|
||||||
end
|
end
|
||||||
|
|
||||||
def up
|
def up
|
||||||
|
if $stdout.isatty
|
||||||
say ''
|
say ''
|
||||||
say 'WARNING: This migration may take a *long* time for large instances'
|
say 'WARNING: This migration may take a *long* time for large instances'
|
||||||
say 'It will *not* lock tables for any significant time, but it may run'
|
say 'It will *not* lock tables for any significant time, but it may run'
|
||||||
|
@ -73,6 +74,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2]
|
||||||
say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true
|
say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true
|
||||||
sleep 1
|
sleep 1
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
migrated = 0
|
migrated = 0
|
||||||
last_time = Time.zone.now
|
last_time = Time.zone.now
|
||||||
|
|
Loading…
Reference in a new issue