2012-03-09 80 views
1

看来用于显示数据的数据库与我在rails控制台中可以使用的数据库不同。在rails中切换数据库阶段

我试图运行rails dbconsole,我也得到:

Couldn't find database client: sqlite3. Check your $PATH and try again. 

我的测试和开发数据库适配器是SQLITE3和我的生产适配器是MYSQL。

我需要我的导轨控制台连接到我的生产数据库。

+0

“舞台”是错误的单词;你正在寻找切换“环境”。你的环境可能不应该使用不同的数据库引擎,你应该在'config/database.yml'中修复它。目前尚不清楚您的开发中是否安装了实用的SQlite3数据库,或者是否有填充的生产中的功能性MySQL数据库。你能澄清吗? – meagar 2012-03-09 02:45:29

+0

感谢您向我澄清。 这两个数据库都被填充。我猜测,我在rails控制台中连接的数据库是开发,这是我能想到的唯一解释。我可以通过下面给出的答案连接到生产。 – marimaf 2012-03-09 03:17:53

回答

2

如果你想连接到你的生产数据库,则需要执行consoledbconsole命令之前的RAILS_ENV环境变量设置为production

的“Rails的控制台”和dbconsole命令参考不同的东西:

如果您想直接连接到数据库,执行SQL语句,使用

$ RAILS_ENV=production ./script/rails dbconsole 

如果你试图加载“Rails控制台”,即可访问Rails环境的交互式Ruby外壳,运行

$ RAILS_ENV=production ./script/rails console 
+0

谢谢!我能够使用生产数据库! 我应该运行一个类似的命令来将数据种到生产数据库,因为运行rake db:seed会加载到不同的数据库中。谢谢。 – marimaf 2012-03-09 03:14:10

+1

是的。 *总是通过'RAILS_ENV'环境变量指定环境。如果您想生产生产数据库,您必须运行'RAILS_ENV =生产耙db:种子'。 – meagar 2012-03-09 03:36:21