我在看這篇關於rake命令的文章,但不要在RAILS_ENV的位置。這是在某個特定的文件嗎?RAILS_ENV在哪裏?
db:create Creates the database for the current RAILS_ENV environment. If RAILS_ENV is not specified it defaults to the development and test databases.
我在看這篇關於rake命令的文章,但不要在RAILS_ENV的位置。這是在某個特定的文件嗎?RAILS_ENV在哪裏?
db:create Creates the database for the current RAILS_ENV environment. If RAILS_ENV is not specified it defaults to the development and test databases.
RAILS_ENV
只是一個環境變量,它在shell或操作系統本身(或調用進程時)中設置。
環境變量是一組動態命名值,可以影響運行進程在計算機上的行爲方式。
它們是進程運行環境的一部分。例如, 正在運行的進程可以查詢TEMP
環境變量 的價值發現一個合適的位置來存放臨時文件,或HOME
或USERPROFILE
變量來查找運行過程中 用戶所擁有的目錄結構。
https://en.wikipedia.org/wiki/Environment_variable
ENV["RAILS_ENV"]
只包含一個字符串,如 「生產」, 「發展」 或 「測試」。這告訴Rails which configuration file在/config/environments
中加載 - 以及database.yml
中哪個散列鍵用於數據庫。
例如,如果ENV["RAILS_ENV"] == "foo"
Rails會:
/config/environments/foo.rb
foo
。Rails.env.foo?
將是真實的。Rails環境概念因此與一般計算概念有所不同 - Rails環境是一組設置和數據庫的更廣泛術語,用於不同目的(如自動化測試或生產)。
參見:
它的環境變量,您可以通過在命令前通過它設置您正在執行
RAILS_ENV=production rake db:migrate
您也可以通過在命令
MAIL_USERNAME=user MAIL_PASSWORD=password rails server
之前將它們設置一些其他ENV變量
或者您可以將它們導出到外殼
export MAIL_USERNAME=user
export MAIL_PASSWORD=password
rails server
還有一個叫dotenv
,幫助您輕鬆地將其儲存在一個.env
文件,該文件將不會被推倒git
或任何SVN使用
所以RAILS_ENV用作容器爲您打造一個數據庫來測試的東西出來?那麼你可以有多個RAILS_ENV來嘗試在裏面使用不同的表格?或者你會不停地在你的開發環境中丟棄和重新設置表格? – stackjlei
不完全是你在想什麼.. 但是你可以根據你的需要有不同的環境,如'test','demo','development'和'production' –
你也可以創建你想要的任何環境,只要確保你有'config/environments /#{environment_name} .env' –
據我理解ENV變量寶石,這個「RAILS_ENV」似乎很像環境變量可能是操作系統級別(例如在* uix環境下,使用env檢查其值),或者可能是特定於可能在配置文件(.propertie或其他)中設置的運行時。
RAILS_ENV是軌道環境,即開發,生產或分期。
可以使用RAILS_ENV
一樣運行於不同的環境命令:
RAILS_ENV=production rake db:migrate #runs migration in production env
RAILS_ENV=test rake db:migrate #runs migration in test env
默認情況下,環境是發展。
設置ENV變量的確切程度取決於shell使用和操作系統。儘管大多數操作系統:es(甚至是windows)都有env vars。 – max