0

rake タスクに引数を渡して、別のスキーマで rake タスクを実行するにはどうすればよいですか? たとえば、次のような rake コードがあります。

namespace :update_persons_table do
  task :import => :environment do

  config   = Rails.configuration.database_configuration
  ActiveRecord::Base.connection.schema_search_path = "my, public, data_master_reports"  

       # do stuff make updates to table....

  end
end

この rake タスクをコマンド ラインから次のように呼び出します。

RAILS_ENV='production' rake update_persons_table:import

ところで、私が使用している上記の RAILS_ENV 呼び出しは:environment do、2 行目で使用しているステートメントと関係がありますか? 私のdatabase.ymlファイルにはproduction:データベースエントリがあるためです。このための配管全体がどのように機能するかを理解しようとしています。この rake タスクは、データベース内のテーブルを更新します。しかし、別のデータベースの別のクローンテーブルで呼び出すことができるようにしたいと考えています。コマンドラインでパラメーターを渡すことで、どうすればそれを行うことができますか?

4

1 に答える 1

0

rake タスクに引数を渡して、別のスキーマで rake タスクを実行するにはどうすればよいですか?

あなたが求めているのは

rake タスクに引数を渡して、別の環境で rake タスクを実行するにはどうすればよいですか?

schemaアプリのすべての環境で同じです

私が使用している上記の RAILS_ENV 呼び出しは、2 行目で使用している :environment do ステートメントと関係がありますか?

はい:environment doは、指定している環境 (:development、:test、:production) を使用します。あなたの例では、そのRAILS_ENV='production'

ここで、開発環境などの別の環境で rake タスクを実行します。

`RAILS_ENV='development' rake update_persons_table:import'

実行時に実稼働環境の db で実行されたのと同じコードが`RAILS_ENV='production' rake update_persons_table:import'、開発環境の db で実行されました。

これがあなたが始めるのに十分明確であることを願っています

于 2013-05-31T20:33:36.270 に答える