2011-11-25 57 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