orumin/enju_leaf

DBの初期設定でSolrに依存する処理がある

boronology opened this issue · 1 comments

事象

README中のデータベースの初期設定において

docker-compose run --rm web bundle exec rake enju_leaf:setup

を実行すると失敗する。

ログ

RSolr::Error::ConnectionRefused: Connection refused - {:data=>"[{"id":"Shelf 1","type":["Shelf","ApplicationRecord","ActiveRecord::Base"],"class_name":"Shelf","shelf_name_s":"web","library_s":"web","position_i":"1","name_text":["web","web","ja: web","World Wide Web"]}]", :headers=>{"Content-Type"=>"application/json"}, :method=>:post, :params=>{:wt=>:json}, :query=>"wt=json", :path=>"update", :uri=>#<URI::HTTP http://solr:8983/solr/default/update?wt=json>}

Caused by:
Faraday::ConnectionFailed: Failed to open TCP connection to solr:8983 (getaddrinfo: Name does not resolve)

等となっており、Solrとの通信が必要だったことがわかる。

対応案

export DB_USER=enju_leaf DB_NAME=enju_leaf_production DB_PASS=admin # .env.production に合わせる
docker-compose up -d db \
  && sleep 10 \
  && docker-compose exec -u postgres db sh -c "echo create user ${DB_USER} with password \'${DB_PASS}\' createdb\; | psql -f -" \
  && docker-compose exec -u postgres db createdb -U ${DB_USER} ${DB_NAME}
docker-compose up -d solr # <- new
docker-compose run --rm web bundle exec rake db:migrate
docker-compose run --rm web bundle exec rake enju_leaf:setup
docker-compose run --rm web bundle exec rake enju_circulation:setup
docker-compose run --rm web bundle exec rake enju_subject:setup
docker-compose run --rm web bundle exec rake db:seed

解決しました