38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module MigrationHelpers
 | |
|   module ProjectStatisticsHelper
 | |
|     def generate_records(projects, table, values = {})
 | |
|       projects.map do |proj|
 | |
|         table.create!(
 | |
|           values.merge({
 | |
|             project_id: proj.id,
 | |
|             namespace_id: proj.namespace_id
 | |
|           })
 | |
|         )
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     def create_migration(end_id:)
 | |
|       described_class.new(start_id: 1, end_id: end_id,
 | |
|         batch_table: 'project_statistics', batch_column: 'project_id',
 | |
|         sub_batch_size: 1_000, pause_ms: 0,
 | |
|         connection: ApplicationRecord.connection)
 | |
|     end
 | |
| 
 | |
|     def create_project_stats(project_table, namespace, default_stats, override_stats = {})
 | |
|       stats = default_stats.merge(override_stats)
 | |
| 
 | |
|       group = namespace.create!(name: 'group_a', path: 'group-a', type: 'Group')
 | |
|       project_namespace = namespace.create!(name: 'project_a', path: 'project_a', type: 'Project', parent_id: group.id)
 | |
|       proj = project_table.create!(name: 'project_a', path: 'project-a', namespace_id: group.id,
 | |
|         project_namespace_id: project_namespace.id)
 | |
|       project_statistics_table.create!(
 | |
|         project_id: proj.id,
 | |
|         namespace_id: group.id,
 | |
|         **stats
 | |
|       )
 | |
|     end
 | |
|   end
 | |
| end
 |