2

私のdatabase.ymlは次のようになります:

adapter: mysql
database: my_db
username: user1
password: '123'
host: localhost

これは非レールアプリケーションであり、スクリプトにrake/rubyを使用しているだけです。

このyamlファイルでデフォルト(dev)と本番環境を設定できますか、それともRails固有ですか?

はいの場合、次のようなものを実行するとき:

rake user:create

本番環境の場合、yamlファイルの本番環境データベース設定を使用するにはどうすればよいですか?

4

1 に答える 1

3

yamlファイルをメモリに読み込んで解析する場合は、現在の環境(または何も設定されていない場合はデフォルト)を使用するロジックを配置するのに適した場所です。これを行う簡単な方法は、環境変数に依存することです(Railsアプリでない場合はRAILS_ENVを使用せず、Rackアプリでない場合はRACK_ENVを使用しないでください)。

次のようなものを使用します:

my_env = ENV['MY_ENV_VARIABLE'] || 'development'
db_settings = YAML::load(File.open(yml_file))[my_env]

次に、次の方法でrakeを呼び出すことができます。

MY_ENV_VARIABLE=production rake my_task

または、タスク自体にパラメータを追加する場合は、使用するように設定できます

rake my_task[production]

(ただし、zshのように、全体を引用する必要があるかどうかによっては、面倒になる可能性があります)。

一部のライブラリ(heroku_sanなど)が使用する別のアプローチは、環境変数を設定する個別のタスクを用意し、複数のタスクの呼び出しに依存することです。これにより:production、環境変数を設定してから呼び出すことができるタスクが作成されます。

rake production my_task
于 2012-04-20T21:31:22.810 に答える