Materializing those views can take a while, and they are currently refreshed anyway each time they are actually used, in the FollowRecommendationsScheduler.
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			628 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			628 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| class UpdateFollowRecommendationsToVersion2 < ActiveRecord::Migration[6.1]
 | |
|   # We're switching from a normal to a materialized view so we need
 | |
|   # custom `up` and `down` paths.
 | |
| 
 | |
|   def up
 | |
|     drop_view :follow_recommendations
 | |
|     create_view :follow_recommendations, version: 2, materialized: { no_data: true }
 | |
| 
 | |
|     # To be able to refresh the view concurrently,
 | |
|     # at least one unique index is required
 | |
|     safety_assured { add_index :follow_recommendations, :account_id, unique: true }
 | |
|   end
 | |
| 
 | |
|   def down
 | |
|     drop_view :follow_recommendations, materialized: true
 | |
|     create_view :follow_recommendations, version: 1
 | |
|   end
 | |
| end
 |