Ruby on rails 在Rails3.2.16(Ubuntu)中未加载mysql2 gem(用于手动代码,而不是数据库适配器)
我正在PostgreSQL上运行Rails应用程序,但需要执行一些任意的MySQL查询,因此我将Ruby on rails 在Rails3.2.16(Ubuntu)中未加载mysql2 gem(用于手动代码,而不是数据库适配器),ruby-on-rails,ruby,rubygems,rvm,Ruby On Rails,Ruby,Rubygems,Rvm,我正在PostgreSQL上运行Rails应用程序,但需要执行一些任意的MySQL查询,因此我将gem mysql2包括在Gemfile和bundle install中 代码在本地主机(OSX)上运行良好(连接到MySQL数据库并执行查询)。但是,当我使用RVM部署到服务器(Ubuntu)时,Rails不会加载gem,并给出以下错误: NameError (uninitialized constant Mysql2) 这基本上意味着未加载mysql2。执行将Gem.loaded_specs.k
gem mysql2
包括在Gemfile
和bundle install
中
代码在本地主机(OSX)上运行良好(连接到MySQL数据库并执行查询)。但是,当我使用RVM部署到服务器(Ubuntu)时,Rails不会加载gem,并给出以下错误:
NameError (uninitialized constant Mysql2)
这基本上意味着未加载mysql2
。执行将Gem.loaded_specs.keys
放入代码中,以确认这一点。奇怪的是,当我使用rails控制台时,mysql2
gem加载得很好
我的怀疑是,mysql2
是Rails用于数据库适配器的宝石之一,因此如果当前数据库适配器未设置为mysql2
,Rails会很方便地忽略这一点。但我对Rails代码库了解不够,无法验证我的怀疑
更多规格详情:
- 轨道3.2.16
- RVM 1.25.27
- Ubuntu 13.04
- Ruby 2.1.2
将mysql2
gem添加到Gemfile
的全局部分,而不仅仅限于开发标签
我的GEM文件的一部分
:
source 'https://rubygems.org'
gem 'rails', '3.2.16'
gem 'pg'
gem 'mysql2'
....
只需确认,您的gem文件看起来像group:production do gem'mysql'end
,您是否在config/database.yml中指定了<代码>生产:适配器:mysql2
我想你误解了我的问题。我使用postgresql
作为适配器,而不是mysql
。我只想包括gem(就像任何其他gem一样)以使用其功能(即连接到MySQL数据库),请使用gem文件更新您的问题。您是否也在服务器上运行bundle安装?为什么需要使用MySQL?无论如何,我猜Mysql2并不是您所追求的常量。@BroiSatse我更新了我的Gemfile。