【Ruby on Rails 】 設定自訂環境(Environment)

為什麼要自訂環境?

在一個專案裡面,很常多人共同開發,但各自開發環境都不相同,有人可能用 MySQL ,有人用 SQLite ,專案開始時先建立好自己的環境,就比較不會互相干擾,那麼如何在同一個 Rails 專案裡面建立各自的環境參數呢?

建立環境

環境預設有3個,development , production , test,也可以自己建立,依照下列步驟:

(假設今天要建立一個 xuan 的環境)

  1. 建立一個新的 environment 檔案在 config/environment/xuan.rb. 檔案內容可以參考上方預設的任何一個都行。(可直接複製 config/environment/development.rb 即可)
  2. 然後在 config/database.yml 新增一個你名稱的環境 DB 參數。 ex:
    xuan:
    <<: *default
    database: DB_name
    username: DB_user
    password: DB_password
    host: 127.0.0.1
    port: 3306
    
  3. 然後在 config/secrets.yml 建立一個自己的 secret key,直接在 shell 下rake secret 會產生一組密鑰,將它新增進去。 ex:
    $ rake secret
    #下方為密鑰
    
    6d0b1341204623a816ae6ccf8831e0f17c0b545c5387a38b8fa394304439f4e2a98fc2cae61ad882133daef369666ac741a75a94cb51e4aaeea741cbc639dc31
    
  4. 啟動 server 的方式有好幾種,我就寫我知道的部份:

rails server

如果你是使用 rails server 啟動 server ,只要下 rails server -e xuan,就會在 xuan 的環境啟動專案。

powder

可以參考powder的 GitHub 指令,操作如下:

$ powder development
# 設定 development 為環境變數

Appended to .powenv

這時候在專案根目錄底下就會新增一個 .powenv 的檔案,內容是:

export RAILS_ENV=development

這串代表的是,我們 server 跑在 development 這個環境下,但我們希望它跑在 xuan 底下,你就把它改成:

export RAILS_ENV=xuan

這樣就算大功告成囉~~~

高手的建議

昨天問了一個 Rails 高手,建議團隊在開發環境最好還是相同,就使用 development 的環境,如果團隊超過10來個,不就要一直無限上綱?

參考資料

http://stackoverflow.com/questions/2369511/how-to-create-a-new-environment-in-ruby-on-rails
https://github.com/rodreegez/powder

Comments

comments powered by Disqus