mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-24 17:06:14 +08:00
40 lines
1.6 KiB
Ruby
40 lines
1.6 KiB
Ruby
require_relative '../../app/services/tasks/samples_to_repository_migration_service'
|
|
|
|
namespace :samples_to_repository_migration do
|
|
desc 'Migrates all data from samples to custom repository'
|
|
task :run, [:last_id] => :environment do |_, args|
|
|
params = { batch_size: 10 }
|
|
migration_service = SamplesToRepositoryMigrationService
|
|
if args.present? && args[:last_id].present?
|
|
params[:start] = args[:last_id].to_i
|
|
end
|
|
Team.find_each(params) do |team|
|
|
puts "******************************* \n\n\n\n"
|
|
puts "Processing Team id => [#{team.id}] \n\n\n\n"
|
|
puts '*******************************'
|
|
|
|
samples_sql = <<-SQL
|
|
SELECT samples.id AS sample_id,
|
|
samples.name AS sample_name,
|
|
samples.user_id AS sample_created_by_id,
|
|
samples.last_modified_by_id AS sample_last_modified_by_id,
|
|
sample_types.name AS sample_type_name,
|
|
sample_groups.name AS sample_group_name,
|
|
sample_groups.color AS sample_group_color
|
|
FROM samples
|
|
JOIN sample_types ON samples.sample_type_id = sample_types.id
|
|
JOIN sample_groups ON samples.sample_type_id = sample_groups.id
|
|
WHERE samples.team_id = #{team.id}
|
|
SQL
|
|
|
|
repository = migration_service.prepare_repository(team)
|
|
custom_columns = migration_service.prepare_text_value_custom_columns(team, repository) +
|
|
migration_service.prepare_list_value_custom_columns_with_list_items(
|
|
team,
|
|
repository
|
|
)
|
|
byebug
|
|
end
|
|
end
|
|
end
|