Pregunta

Al ejecutar Rails 3 RC con Ruby 1.9.2.rc2 bajo RVM sigo recibiendo un gran número de errores en el controlador de MySQL paquete que tener este aspecto:

/opt/local/rvm/gems/ruby-1.9.2-rc2/gems/mysql-2.8.1/lib/mysql_api.bundle: warning: already initialized constant MysqlRes
/opt/local/rvm/gems/ruby-1.9.2-rc2/gems/mysql-2.8.1/lib/mysql_api.bundle: warning: already initialized constant MysqlField
/opt/local/rvm/gems/ruby-1.9.2-rc2/gems/mysql-2.8.1/lib/mysql_api.bundle: warning: already initialized constant MysqlError
/opt/local/rvm/gems/ruby-1.9.2-rc2/gems/mysql-2.8.1/lib/mysql_api.bundle: warning: already initialized constant VERSION
/opt/local/rvm/gems/ruby-1.9.2-rc2/gems/mysql-2.8.1/lib/mysql_api.bundle: warning: already initialized constant OPT_CONNECT_TIMEOUT
/opt/local/rvm/gems/ruby-1.9.2-rc2/gems/mysql-2.8.1/lib/mysql_api.bundle: warning: already initialized constant OPT_COMPRESS
/opt/local/rvm/gems/ruby-1.9.2-rc2/gems/mysql-2.8.1/lib/mysql_api.bundle: warning: already initialized constant OPT_NAMED_PIPE
/opt/local/rvm/gems/ruby-1.9.2-rc2/gems/mysql-2.8.1/lib/mysql_api.bundle: warning: already initialized constant INIT_COMMAND

Esto se muestra en las pruebas unitarias, rails console y todo lo que requiere de los rieles completos pila, pero no un script que usa secuela directa en el mismo entorno.

A pesar de que el paquete en sí lo hace la carga y el conductor de MySQL funciona, esta enorme pila de ejecución advertencias prefacios nada a través de los carriles. Por lo general, esto se debe a una carga redundante de la joya alguna parte mysql dentro del entorno de Rails. La gema se declara en el Gemfile:

gem 'rails', '3.0.0.rc'

gem 'haml'
gem 'sequel'

gem 'mysqlplus'
gem 'mysql'

Me supongo que esto es los rieles cargador automático no comprender la biblioteca MySQL ya ha sido cargado, y cargarlo de nuevo. ¿Hay una manera fácil de solucionar este problema?

Actualización:

mysql carga o mysqlplus pero no ambos al mismo tiempo o se obtendrá advertencias similares a estas. mysqlplus incluye toda la funcionalidad de mysql y es una dependencia de Sequel.

¿Fue útil?

Solución

¿Es usted necesita la gema mysqlplus? Estoy usando Rails 3 con solamente MySQL 2.8.1:

gem 'mysql', '2.8.1'

A pesar de que no he utilizado mysqlplus, estoy adivinando que establece las constantes que están viendo en las advertencias, y luego la gema mysql establece estas constantes de nuevo cuando se carga.

ACTUALIZACIÓN: El uso mysql2 lugar

#gem 'mysql', '2.8.1'
gem 'mysql2'

También es necesario actualizar los adaptadores de base de datos en database.yml:

development:
  #adapter: mysql
  adapter: mysql2
  database: somedatabase_development
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top