From db8cf69771061776f7bb0d916342be7d6d14fe2d Mon Sep 17 00:00:00 2001 From: Sylvain Date: Thu, 8 Dec 2016 12:09:04 +0100 Subject: [PATCH] [bug #55] unable to run rake db:migrate on first install --- ...160906145713_insert_custom_aggregations.rb | 42 ------------------- db/seeds.rb | 26 ++++++++++++ 2 files changed, 26 insertions(+), 42 deletions(-) delete mode 100644 db/migrate/20160906145713_insert_custom_aggregations.rb diff --git a/db/migrate/20160906145713_insert_custom_aggregations.rb b/db/migrate/20160906145713_insert_custom_aggregations.rb deleted file mode 100644 index 2e28fd5f1..000000000 --- a/db/migrate/20160906145713_insert_custom_aggregations.rb +++ /dev/null @@ -1,42 +0,0 @@ -class InsertCustomAggregations < ActiveRecord::Migration - def up - # available reservations hours for machines - machine = StatisticIndex.find_by(es_type_key: 'machine') - machine_hours = StatisticType.find_by(key: 'hour', statistic_index_id: machine.id) - - available_hours = StatisticCustomAggregation.new({ - statistic_type_id: machine_hours.id, - es_index: 'fablab', - es_type: 'availabilities', - field: 'available_hours', - query: '{"size":0, "aggregations":{"%{aggs_name}":{"sum":{"field":"hours_duration"}}}, "query":{"bool":{"must":[{"range":{"start_at":{"gte":"%{start_date}", "lte":"%{end_date}"}}}, {"match":{"available_type":"machines"}}]}}}' - }) - available_hours.save! - - # available training tickets - training = StatisticIndex.find_by(es_type_key: 'training') - training_bookings = StatisticType.find_by(key: 'booking', statistic_index_id: training.id) - - available_tickets = StatisticCustomAggregation.new({ - statistic_type_id: training_bookings.id, - es_index: 'fablab', - es_type: 'availabilities', - field: 'available_tickets', - query: '{"size":0, "aggregations":{"%{aggs_name}":{"sum":{"field":"nb_total_places"}}}, "query":{"bool":{"must":[{"range":{"start_at":{"gte":"%{start_date}", "lte":"%{end_date}"}}}, {"match":{"available_type":"training"}}]}}}' - }) - available_tickets.save! - end - - def down - - machine = StatisticIndex.find_by(es_type_key: 'machine') - machine_hours = StatisticType.find_by(key: 'hour', statistic_index_id: machine.id) - - StatisticCustomAggregation.where(field: 'available_hours', statistic_type_id: machine_hours.id).first.destroy! - - training = StatisticIndex.find_by(es_type_key: 'training') - training_bookings = StatisticType.find_by(key: 'booking', statistic_index_id: training.id) - - StatisticCustomAggregation.where(field: 'available_tickets', statistic_type_id: training_bookings.id).first.destroy! - end -end diff --git a/db/seeds.rb b/db/seeds.rb index 33ee91648..c10636074 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -396,4 +396,30 @@ unless Setting.find_by(name: 'reminder_delay').try(:value) setting = Setting.find_or_initialize_by(name: 'reminder_delay') setting.value = '24' setting.save +end + +if StatisticCustomAggregation.count == 0 + # available reservations hours for machines + machine_hours = StatisticType.find_by(key: 'hour', statistic_index_id: 2) + + available_hours = StatisticCustomAggregation.new({ + statistic_type_id: machine_hours.id, + es_index: 'fablab', + es_type: 'availabilities', + field: 'available_hours', + query: '{"size":0, "aggregations":{"%{aggs_name}":{"sum":{"field":"hours_duration"}}}, "query":{"bool":{"must":[{"range":{"start_at":{"gte":"%{start_date}", "lte":"%{end_date}"}}}, {"match":{"available_type":"machines"}}]}}}' + }) + available_hours.save! + + # available training tickets + training_bookings = StatisticType.find_by(key: 'booking', statistic_index_id: 3) + + available_tickets = StatisticCustomAggregation.new({ + statistic_type_id: training_bookings.id, + es_index: 'fablab', + es_type: 'availabilities', + field: 'available_tickets', + query: '{"size":0, "aggregations":{"%{aggs_name}":{"sum":{"field":"nb_total_places"}}}, "query":{"bool":{"must":[{"range":{"start_at":{"gte":"%{start_date}", "lte":"%{end_date}"}}}, {"match":{"available_type":"training"}}]}}}' + }) + available_tickets.save! end \ No newline at end of file