diff --git a/doc/elastic_upgrade.md b/doc/elastic_upgrade.md index 79a9ed901..1d130befe 100644 --- a/doc/elastic_upgrade.md +++ b/doc/elastic_upgrade.md @@ -114,3 +114,43 @@ You can check for any error during container startup, using: ```bash docker-compose logs elasticsearch ``` + +## Skip the upgrade + +The upgrade is not working and you can't debug it? +You can skip it by deleting your ES database, installing ES 5.6 and resynchronizing ES from your PostgreSQL database. + +**This is not recommended on old installations as this can lead to data losses.** + +Here's the procedure: + +```bash +curl -XDELETE "$ES_IP:9200/fablab" +curl -XDELETE "$ES_IP:9200/stats" +# delete any other index, if applicable +``` +Stop and remove your container, then edit your [docker-compose.yml](../docker/docker-compose.yml) and set the following: + +```yml + elasticsearch: + image: elasticsearch:5.6 + ulimits: + memlock: + soft: -1 + hard: -1 + environment: + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + volumes: + - ${PWD}/elasticsearch/config:/usr/share/elasticsearch/config + - ${PWD}/elasticsearch:/usr/share/elasticsearch/data + restart: always +``` + +Copy [elasticsearch.yml](../docker/elasticsearch.yml) and [log4j2.properties](../docker/log4j2.properties) to `elasticsearch/config`, then pull and restart your containers. + +Finally reindex your data: +```bash +rake fablab:es_build_stats +rake fablab:generate_stats[3000] +rake fablab:es_build_projects_index +``` diff --git a/lib/tasks/fablab.rake b/lib/tasks/fablab.rake index 4f4873f97..34ea66b98 100644 --- a/lib/tasks/fablab.rake +++ b/lib/tasks/fablab.rake @@ -43,10 +43,10 @@ namespace :fablab do desc '(re)Build ElasticSearch fablab base for stats' task es_build_stats: :environment do - puts "DELETE stats" + puts 'DELETE stats' `curl -XDELETE http://#{ENV["ELASTICSEARCH_HOST"]}:9200/stats` - puts "PUT index stats" + puts 'PUT index stats' `curl -XPUT http://#{ENV["ELASTICSEARCH_HOST"]}:9200/stats -d' { "settings" : { @@ -60,7 +60,7 @@ namespace :fablab do %w[account event machine project subscription training user space].each do |stat| puts "PUT Mapping stats/#{stat}" - `curl -XPUT http://#{ENV["ELASTICSEARCH_HOST"]}:9200/stats/#{stat}/_mapping -d ' + `curl -XPUT http://#{ENV["ELASTICSEARCH_HOST"]}:9200/stats/#{stat}/_mapping -d ' { "properties": { "type": {