0

私は2台のマシン間でElasticSearchを使用してRubyonRails開発を行ってきましたが、少し面倒になり始めています。私の通常のワークフローは次のとおりです。

git pull
bundle install
rake db:migrate (or rake db:setup depending)
rails server
elasticsearch -f -D myconfig.xml
rake environment tire:import CLASS=MyObject FORCE=true

とにかく、これらすべてのコマンドをRailsのある種の起動スクリプトに追加して、すべてを1か所にまとめることができますか?マシンを切り替えるたびに、開発環境を簡単に立ち上げることができます。

4

3 に答える 3

3

私が見つけた最善の方法は、Foremangemを使用してプロジェクトと関連プロセスをキックスタートすることです。

于 2012-08-20T23:19:50.537 に答える
2

Capistranoを使用したデプロイメントでこれを行う必要があるようです。config/deploy.rbファイルの例を次に示します。

[basic parts omitted]

after "deploy", "bundler:bundle_install"
after "bundler:bundle_install", "db:db_migrate"
after "deploy:db_migrate", "deploy:elastic_search_indexing"

namespace :bundler do
  desc 'call bundle install'
  task :bundle_install do
    run "cd #{deploy_to}/current && bundle install"
  end
end

namespace :db do
  desc 'fire the db migrations'
  task :db_migrate do
    run "cd #{deploy_to}/current && bundle exec rake db:migrate RAILS_ENV=\"production\""
  end
end

namespace :elasticsearch do
  desc 'run elasticsearch indexing via tire'
  task :index_classes do
    run "cd #{deploy_to}/current && bundle exec rake environment tire:import CLASS=YourObject FORCE=true "
  end
end

[rest omitted]

/etc/elasticsearch/elasticsearch.ymlのターゲットマシン(Linux)に、次のような内容の構成ファイルがあることを確認してください。

cluster:
   name:   elasticsearch_server

network:
   host:   66.98.23.12

そして最後に言及する点は、初期化子config / initializers/tire.rbを作成する必要があるということです。

if Rails.env == 'production'
  Tire.configure do
    url "http://66.98.23.12:9200"
  end
end

ご覧のとおり、これはまったく同じIPアドレスですが、実稼働環境でのみ使用されます。ローカルホストを介してローカルで(開発モードで)elasticsearchにアクセスすると仮定します。Elasticsearchはデフォルトで接続されています

 http://0.0.0.0:9200

優れた出発点であり、詳細なヘルプも、素晴らしいRyanBatesと彼のRailscastshttp://railscasts.com/episodes?utf8=%E2%9C%93&search=capistranoによって提供されています

于 2012-09-01T21:42:54.447 に答える
0

何があなたにそれをbashスクリプトに入れさせないのですか?そして、スクリプトをRAILS_APP_HOME / scriptsフォルダーに入れますか?

#!/bin/sh
git pull
bundle install
rake db:migrate 
rails server
elasticsearch -f -D myconfig.xml
rake environment tire:import CLASS=MyObject FORCE=true
于 2012-08-20T22:13:48.933 に答える