Rails, Ruby 1.9.3p0 и mysql gem - PullRequest
       1

Rails, Ruby 1.9.3p0 и mysql gem

7 голосов
/ 10 декабря 2011

Я использую CentOS6 и установил Ruby из исходного кода вместе с Rails и некоторыми другими сотрудниками.

ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]  

rails -v
Rails 3.1.3

Некоторые драгоценные камни:

*** LOCAL GEMS ***

actionmailer (3.1.3, 2.3.14)
actionpack (3.1.3, 2.3.14)
activemodel (3.1.3)
activerecord (3.1.3, 2.3.14)
activeresource (3.1.3, 2.3.14)
activesupport (3.1.3, 2.3.14)
archive-tar-minitar (0.5.2)
arel (2.2.1)
bigdecimal (1.1.0)
bouncy-castle-java (1.5.0146.1)
builder (3.0.0)
bundler (1.0.21)
coderay (0.9.7)
columnize (0.3.5)
edavis10-object_daddy (0.4.3)
erubis (2.7.0)
fastercsv (1.5.0)
ffi (1.0.11)
hike (1.2.1)
hoe (2.12.4)
i18n (0.6.0, 0.4.2)
io-console (0.3)
jruby-openssl (0.7.4)
json (1.5.4)
linecache19 (0.5.13)
mail (2.3.0)
metaclass (0.0.1)
mime-types (1.17.2)
minitest (2.5.1)
mocha (0.10.0)
multi_json (1.0.4)
mysql (2.8.1)
mysql2 (0.3.11, 0.2.7)
net-ldap (0.2.2)
polyglot (0.3.3)
rack (1.3.5, 1.1.2)
rack-cache (1.1)
rack-mount (0.8.3)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.1.3, 2.3.14)
railties (3.1.3)
rake (0.9.2.2)
rdoc (3.9.4)
rmagick (2.13.1)
ruby-debug-base19 (0.11.26, 0.11.25)
ruby-debug19 (0.11.6)
ruby-mysql (2.9.4)
ruby-openid (2.1.4)
ruby_core_source (0.1.5)
rubygems-update (1.8.12)
rubytree (0.5.2)
shoulda (2.11.3, 2.10.3)
sprockets (2.0.3)
sqlite3 (1.3.5, 0.1.1)
sqlite3-ruby (1.3.3, 1.2.5)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.31)

Мне нужен Rails для запуска chiliproject, но при запуске следующей команды

RAILS_ENV=production bundle exec rake db:migrate

Я получаю:

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
cannot load such file -- mysql

Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

Теперь с --trace:

RAILS_ENV=production bundle exec rake db:migrate --trace >> tmp/rake
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
cannot load such file -- mysql
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:184:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:184:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/core_ext/kernel/requires.rb:7:in `block in require_library_or_gem'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/core_ext/kernel/requires.rb:5:in `require_library_or_gem'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/mysql_adapter.rb:61:in `mysql_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in `block (2 levels) in checkout'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `loop'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `block in checkout'
/usr/local/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in `checkout'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in `connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in `retrieve_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retrieve_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `connection'
/var/www/html/chiliproject/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:218:in `quoted_left_column_name'
/var/www/html/chiliproject/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb:94:in `acts_as_nested_set'
/var/www/html/chiliproject/app/models/issue.rb:33:in `'
/var/www/html/chiliproject/app/models/issue.rb:15:in `'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:184:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:184:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:291:in `require_or_load'
/var/www/html/chiliproject/vendor/plugins/engines/lib/engines/rails_extensions/dependencies.rb:133:in `require_or_load_with_engine_additions'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:451:in `load_missing_constant'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:106:in `const_missing_with_dependencies'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:118:in `const_missing'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/inflector.rb:375:in `const_get'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/inflector.rb:375:in `block in constantize'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/inflector.rb:374:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/inflector.rb:374:in `constantize'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/core_ext/string/inflections.rb:162:in `constantize'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/observer.rb:157:in `observed_class'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/observer.rb:183:in `observed_classes'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/observer.rb:166:in `initialize'
/usr/local/lib/ruby/1.9.1/singleton.rb:141:in `new'
/usr/local/lib/ruby/1.9.1/singleton.rb:141:in `block in instance'
:10:in `synchronize'
/usr/local/lib/ruby/1.9.1/singleton.rb:139:in `instance'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/observer.rb:38:in `block in instantiate_observers'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/observer.rb:36:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.14/lib/active_record/observer.rb:36:in `instantiate_observers'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.14/lib/action_controller/dispatcher.rb:15:in `block in define_dispatcher_callbacks'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:182:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:182:in `evaluate_method'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:166:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:90:in `block in run'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:90:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:90:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:276:in `run_callbacks'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.14/lib/action_controller/dispatcher.rb:51:in `run_prepare_callbacks'
/usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.14/lib/initializer.rb:631:in `prepare_dispatcher'
/usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.14/lib/initializer.rb:185:in `process'
/usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.14/lib/initializer.rb:113:in `run'
/var/www/html/chiliproject/config/environment.rb:39:in `'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:182:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:182:in `block in require'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:547:in `new_constants_in'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.14/lib/active_support/dependencies.rb:182:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.14/lib/tasks/misc.rake:4:in `block in '
/usr/local/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/rake/task.rb:176:in `block in invoke_prerequisites'
/usr/local/lib/ruby/1.9.1/rake/task.rb:174:in `each'
/usr/local/lib/ruby/1.9.1/rake/task.rb:174:in `invoke_prerequisites'
/usr/local/lib/ruby/1.9.1/rake/task.rb:157:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `'
Tasks: TOP => db:migrate => environment

Кто-нибудь знает, что не так с файлами mysql gem?

Я также пытался установить файлы mysql gem, как это

gem install ruby-mysql2 --no-rdoc --no-ri -- --with-mysql-config=/usr/bin/mysql_config

Ответы [ 3 ]

9 голосов
/ 18 декабря 2011

У меня просто были похожие проблемы, и вы, возможно, делаете то, что я делал: я использовал 'список драгоценных камней', чтобы определить, что было установлено (список *** LOCAL GEMS ***, как вы видите), и я увидел mysql, ноGemfile для моего проекта не требовалось bundler для установки mysql.

Если вы просто наберете bundle show, появится ли в списке 'mysql'?Если нет, то Gemfile в chiliproject не вызывает bundler для установки mysql.Я находил это все очень запутанным, пока не понял, что путаю разные способы управления тем, какие гемы установлены.

Если у вас или у других, кто идет таким путем, возникла та же проблема, возможно, это полезно.(И, возможно, это плохое объяснение побудит одного из гуру рельсов разработать для нас.)

Другими словами, список ваших локально установленных драгоценных камней не совпадает со списком, установленным в вашем связка драгоценных камней в приложении (отсюда и название инструмента bundler).Когда вы запускаете свое приложение и управляете его зависимостями с помощью bundler, вы должны делать все в пределах bundler, чтобы убедиться, что все это работает вместе.Когда вы делаете это, это на самом деле очень просто и решает много проблем для вас, но если вы переходите от предыдущего опыта к приложениям, которые не используют bundler, тогда просто нужно привыкнуть.

3 голосов
/ 24 июля 2013

Просто при установке пакета попробуйте это >>

bundle install --without=test development sqlite postgres mysql rmagick

Это установит все необходимые базовые зависимости, адаптер базы данных mysql2 Причина MySQL адаптер не совместим с Ruby 1.9

И не забудьте изменить config / database.yml -> s / mysql / mysql2

\ о /

3 голосов
/ 21 мая 2012

2 шага, которые работали для меня:

  1. Скопируйте файл libmySQL.dll из / lib http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick (в папке / lib /) в c: / your / path /в / ruby ​​/ bin (Убедитесь, что ваш ruby ​​bin находится в переменной среды PATH вашей системы)

  2. Настройка по умолчанию для MySQL указана с ruby1.8.Если вы используете Redmine с MySQL и ruby1.9, замените имя адаптера на mysql2 в файле /config/database.yml http://www.redmine.org/issues/10566

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...