Ruby 1.9.2 под RVM и MySQL уже инициализировали постоянные предупреждения

StackOverflow https://stackoverflow.com/questions/3426359

Вопрос

При ходу Rails 3 RC с Ruby 1.9.2.rc2 под RVM я продолжаю получать очень большое количество ошибок из пакета драйвера MySQL, который выглядит так:

/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

Это проявляется в rails console И модифицированные тесты, все, что требует полных рельсов стека, но не скрипт, который использует продолжение непосредственно в той же среде.

Хотя сам пакет загрузка, и водитель MySQL работает, эта огромная куча предупреждений преодолевает все пробежки через рельсы. Обычно это результаты из избыточной нагрузки mysql Gem где-то в среде рельсов. GEM объявляется в GemFile:

gem 'rails', '3.0.0.rc'

gem 'haml'
gem 'sequel'

gem 'mysqlplus'
gem 'mysql'

Я полагаю, что это рельсы автозагрузчика, не понимая, что библиотека MySQL уже загружена, и загрузка ее снова. Есть ли простой способ исправить это?

Обновлять:

Нагрузка mysql или mysqlplus Но не оба одновременно, либо вы получите следующие предупреждения. mysqlplus включает в себя все функциональные возможности mysql и является зависимостью продолжения.

Это было полезно?

Решение

Вам нужен Gem MySqlplus? Я использую Rails 3 с только MySQL 2.8.1:

GEM 'MYSQL', «2.8.1»

Хотя я не использовал MySqlplus, я предполагаю, что он устанавливает константы, которые вы видите в предупреждениях, а затем GEM MySQL снова устанавливает эти константы, когда он загружен.

Обновление: используйте MySQL2 вместо

#gem 'mysql', '2.8.1' Gem 'MySQL2'

Вам также необходимо обновить адаптеры базы данных в базе данных .yml:

Разработка: #Adapter: MySQL Adapter: база данных mysql2: somedatabase_development
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top