List columns within the method (#11377)
To avoid the exception: NoMethodError: undefined method `perform' for nil:NilClass .../vendor/bundle/ruby/2.6.0/gems/strong_migrations-0.4.1/lib/strong_migrations/migration.rb:14:in `method_missing' .../vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/migration.rb:604:in `method_missing' .../db/migrate/20170918125918_ids_to_bigints.rb:69:in `<class:IdsToBigints>' .../db/migrate/20170918125918_ids_to_bigints.rb:3:in `<top (required)>'
This commit is contained in:
		
							parent
							
								
									24367ef906
								
							
						
					
					
						commit
						cd68714393
					
				
					 1 changed files with 65 additions and 65 deletions
				
			
		|  | @ -5,70 +5,70 @@ class IdsToBigints < ActiveRecord::Migration[5.1] | |||
| 
 | ||||
|   disable_ddl_transaction! | ||||
| 
 | ||||
|   INCLUDED_COLUMNS = [ | ||||
|     [:account_domain_blocks, :account_id], | ||||
|     [:account_domain_blocks, :id], | ||||
|     [:accounts, :id], | ||||
|     [:blocks, :account_id], | ||||
|     [:blocks, :id], | ||||
|     [:blocks, :target_account_id], | ||||
|     [:conversation_mutes, :account_id], | ||||
|     [:conversation_mutes, :id], | ||||
|     [:domain_blocks, :id], | ||||
|     [:favourites, :account_id], | ||||
|     [:favourites, :id], | ||||
|     [:favourites, :status_id], | ||||
|     [:follow_requests, :account_id], | ||||
|     [:follow_requests, :id], | ||||
|     [:follow_requests, :target_account_id], | ||||
|     [:follows, :account_id], | ||||
|     [:follows, :id], | ||||
|     [:follows, :target_account_id], | ||||
|     [:imports, :account_id], | ||||
|     [:imports, :id], | ||||
|     [:media_attachments, :account_id], | ||||
|     [:media_attachments, :id], | ||||
|     [:mentions, :account_id], | ||||
|     [:mentions, :id], | ||||
|     [:mutes, :account_id], | ||||
|     [:mutes, :id], | ||||
|     [:mutes, :target_account_id], | ||||
|     [:notifications, :account_id], | ||||
|     [:notifications, :from_account_id], | ||||
|     [:notifications, :id], | ||||
|     [:oauth_access_grants, :application_id], | ||||
|     [:oauth_access_grants, :id], | ||||
|     [:oauth_access_grants, :resource_owner_id], | ||||
|     [:oauth_access_tokens, :application_id], | ||||
|     [:oauth_access_tokens, :id], | ||||
|     [:oauth_access_tokens, :resource_owner_id], | ||||
|     [:oauth_applications, :id], | ||||
|     [:oauth_applications, :owner_id], | ||||
|     [:reports, :account_id], | ||||
|     [:reports, :action_taken_by_account_id], | ||||
|     [:reports, :id], | ||||
|     [:reports, :target_account_id], | ||||
|     [:session_activations, :access_token_id], | ||||
|     [:session_activations, :user_id], | ||||
|     [:session_activations, :web_push_subscription_id], | ||||
|     [:settings, :id], | ||||
|     [:settings, :thing_id], | ||||
|     [:statuses, :account_id], | ||||
|     [:statuses, :application_id], | ||||
|     [:statuses, :in_reply_to_account_id], | ||||
|     [:stream_entries, :account_id], | ||||
|     [:stream_entries, :id], | ||||
|     [:subscriptions, :account_id], | ||||
|     [:subscriptions, :id], | ||||
|     [:tags, :id], | ||||
|     [:users, :account_id], | ||||
|     [:users, :id], | ||||
|     [:web_settings, :id], | ||||
|     [:web_settings, :user_id], | ||||
|   ] | ||||
|   INCLUDED_COLUMNS << [:deprecated_preview_cards, :id] if table_exists?(:deprecated_preview_cards) | ||||
| 
 | ||||
|   def migrate_columns(to_type) | ||||
|     included_columns = [ | ||||
|       [:account_domain_blocks, :account_id], | ||||
|       [:account_domain_blocks, :id], | ||||
|       [:accounts, :id], | ||||
|       [:blocks, :account_id], | ||||
|       [:blocks, :id], | ||||
|       [:blocks, :target_account_id], | ||||
|       [:conversation_mutes, :account_id], | ||||
|       [:conversation_mutes, :id], | ||||
|       [:domain_blocks, :id], | ||||
|       [:favourites, :account_id], | ||||
|       [:favourites, :id], | ||||
|       [:favourites, :status_id], | ||||
|       [:follow_requests, :account_id], | ||||
|       [:follow_requests, :id], | ||||
|       [:follow_requests, :target_account_id], | ||||
|       [:follows, :account_id], | ||||
|       [:follows, :id], | ||||
|       [:follows, :target_account_id], | ||||
|       [:imports, :account_id], | ||||
|       [:imports, :id], | ||||
|       [:media_attachments, :account_id], | ||||
|       [:media_attachments, :id], | ||||
|       [:mentions, :account_id], | ||||
|       [:mentions, :id], | ||||
|       [:mutes, :account_id], | ||||
|       [:mutes, :id], | ||||
|       [:mutes, :target_account_id], | ||||
|       [:notifications, :account_id], | ||||
|       [:notifications, :from_account_id], | ||||
|       [:notifications, :id], | ||||
|       [:oauth_access_grants, :application_id], | ||||
|       [:oauth_access_grants, :id], | ||||
|       [:oauth_access_grants, :resource_owner_id], | ||||
|       [:oauth_access_tokens, :application_id], | ||||
|       [:oauth_access_tokens, :id], | ||||
|       [:oauth_access_tokens, :resource_owner_id], | ||||
|       [:oauth_applications, :id], | ||||
|       [:oauth_applications, :owner_id], | ||||
|       [:reports, :account_id], | ||||
|       [:reports, :action_taken_by_account_id], | ||||
|       [:reports, :id], | ||||
|       [:reports, :target_account_id], | ||||
|       [:session_activations, :access_token_id], | ||||
|       [:session_activations, :user_id], | ||||
|       [:session_activations, :web_push_subscription_id], | ||||
|       [:settings, :id], | ||||
|       [:settings, :thing_id], | ||||
|       [:statuses, :account_id], | ||||
|       [:statuses, :application_id], | ||||
|       [:statuses, :in_reply_to_account_id], | ||||
|       [:stream_entries, :account_id], | ||||
|       [:stream_entries, :id], | ||||
|       [:subscriptions, :account_id], | ||||
|       [:subscriptions, :id], | ||||
|       [:tags, :id], | ||||
|       [:users, :account_id], | ||||
|       [:users, :id], | ||||
|       [:web_settings, :id], | ||||
|       [:web_settings, :user_id], | ||||
|     ] | ||||
|     included_columns << [:deprecated_preview_cards, :id] if table_exists?(:deprecated_preview_cards) | ||||
| 
 | ||||
|     # Print out a warning that this will probably take a while. | ||||
|     say '' | ||||
|     say 'WARNING: This migration may take a *long* time for large instances' | ||||
|  | @ -86,7 +86,7 @@ class IdsToBigints < ActiveRecord::Migration[5.1] | |||
|       sleep 1 | ||||
|     end | ||||
| 
 | ||||
|     tables = INCLUDED_COLUMNS.map(&:first).uniq | ||||
|     tables = included_columns.map(&:first).uniq | ||||
|     table_sizes = {} | ||||
| 
 | ||||
|     # Sort tables by their size | ||||
|  | @ -94,7 +94,7 @@ class IdsToBigints < ActiveRecord::Migration[5.1] | |||
|       table_sizes[table] = estimate_rows_in_table(table) | ||||
|     end | ||||
| 
 | ||||
|     ordered_columns = INCLUDED_COLUMNS.sort_by do |col_parts| | ||||
|     ordered_columns = included_columns.sort_by do |col_parts| | ||||
|       [-table_sizes[col_parts.first], col_parts.last] | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue