2011-11-25 55 views
6

我不是一位有經驗的Rails開發人員,他開發了一個Rails v2.3應用程序,其中包含MySQl v5.1。在Rails中創建新環境

我不知道如何實現以下事情:

我需要創建:

一個新的環境(這是除了發展生產的一種新型的環境測試環境)名爲'特殊'環境

2.上面創建特殊環境的新數據庫環境中,我所做的是增加在配置以後的事/ database.yml的

special: 
    adapter: mysql2 
    host: localhost 
    username: 
    database: special_db 
    encoding: latin1 

一個耙子任務特殊環境下運行,並且rake任務中的代碼僅處理特殊數據庫。

要做到這一點,我知道我需要定義一些配置,但不知道:

  1. 什麼/到底是如何配置創建特殊環境&數據庫所需?

    (正如您上面所看到的,我只定義了特殊數據庫的database.yml文件,但如果&如何爲新enverionment定義和配置?)

  2. 如何運行rake任務代碼在專用環境下,只處理Rails中的特殊數據庫。是否有人請

P.S.

我需要運行rake任務中的所有內容,而不是從命令行運行。如何改變環境以及如何檢查改變?

--------------發現原因,但不知道解決方案---------------------

好的,我發現這個有線問題的原因是因爲mysql2寶石裏面好像無法加載新的「」特殊的「環境,如果我切換使用mysql寶石,問題就會消失。但是這個問題由於其他原因必須使用mysql2。如何擺脫這個mysql2問題?

回答

1

嘗試以下操作:

複製配置/環境/ development.rb到配置/環境/ special.rb

創建使用

$ RAILS_ENV=special rake db:create 
$ RAILS_ENV=special rake db:migrate 
$ RAILS_ENV=special rails s 
+0

@ map7,謝謝,但是如何在rake任務中運行上述事情從命令行運行? Rails中是否有特殊的方式來指定要在rake任務中運行的環境? – Mellon

+1

我甚至在「RAILS_ENV = special rake db:create」命令行上運行命令,沒有創建特定的數據庫 – Mellon

0

將這個到您的rake任務數據庫:

RAILS_ENV = 'special' 
+0

我添加了這個,然後我嘗試將當前環境的代碼放在「p ENV ['RAILS_ENV' ]「,我得到零... – Mellon