rake db: создать: все

#ruby-on-rails #ruby #rubygems #rake

#ruby-on-rails #ruby #rubygems #грабли

Вопрос:

Заранее прошу прощения за свое невежество, но у меня возникает эта проблема при запуске

 "rake db:create:all"
 

в моем терминале.

 NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:3.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:84.
WARNING: This version of mysql2 (0.3.7) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1
WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x
WARNING: 'require 'rake/rdoctask'' is deprecated.  Please use 'require 'rdoc/task' (in RDoc 2.4.2 )' instead.
    at /usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Couldn't create database for {"username"=>"root", "adapter"=>"mysql", "database"=>"testApp", "host"=>"localhost", "password"=>"mysql"}, charset: utf8, collation: utf8_unicode_ci
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Couldn't create database for {"username"=>"root", "adapter"=>"mysql", "database"=>"testApp", "host"=>"localhost", "password"=>"mysql"}, charset: utf8, collation: utf8_unicode_ci
 

я следил за Леонидом Шевцовым

Мой второй вопрос: Когда у меня bundle update это происходит вот так:

 NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:3.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
Fetching source index for http://rubygems.org/
Enter your password to install the bundled RubyGems to your system: 
/usr/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:122:in `initialize': no metadata found in /usr/lib/ruby/gems/1.8/cache/rake-0.9.2.2.gem (Gem::Package::FormatError)
    from /usr/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:20:in `new'
    from /usr/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:20:in `open'
    from /usr/lib/ruby/site_ruby/1.8/rubygems/package.rb:44:in `open'
    from /usr/lib/ruby/site_ruby/1.8/rubygems/format.rb:62:in `from_io'
    from /usr/lib/ruby/site_ruby/1.8/rubygems/format.rb:46:in `from_file_by_path'
    from /usr/lib/ruby/1.8/open-uri.rb:32:in `open_uri_original_open'
    from /usr/lib/ruby/1.8/open-uri.rb:32:in `open'
    from /usr/lib/ruby/site_ruby/1.8/rubygems/format.rb:45:in `from_file_by_path'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:73:in `fetch'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:45:in `run'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install'
    from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/task.rb:22:in `send'
    from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'
    from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'
    from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'
    from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/bin/bundle:13
    from /usr/bin/bundle:19:in `load'
    from /usr/bin/bundle:19'
 

Кажется, я не могу запустить обновление пакета без ошибок. Я запускаю свою машину с Fedora 15 и Mysql 5.5.

Спасибо и еще раз прошу прощения за свое невежество; я новичок в Rails.

Заранее спасибо! 🙂

Комментарии:

1. какую версию rails вы используете?

2. в настоящее время я использую 3.0.5 rails

Ответ №1:

Похоже, вам следует ограничить mysql2 версию в вашем Gemfile:

 gem 'mysql2', '~>0.2.0'
 

[ПРАВИТЬ] …а затем bundle install , конечно, сделайте

Комментарии:

1. извините за мое невежество, я попытался последовать вашему предложению и привел меня к этому извините, я просто новичок в мире ruby, в /usr/lib/ruby/gems/1.8/cache/rake-0.9.2.2.gem не найдено метаданных (Gem::Package::FormatError)

Ответ №2:

Чтобы избавиться от предупреждений об устаревании rubygems, обновите до последней версии RubyGems и запустите

gem pristine --all --no-extensions .

Что касается ваших ошибок mysql. Убедитесь, что у вас включена служба / демон MySQL, и убедитесь, что ваш конфигурационный файл database.yml указан правильно.

Ответ №3:

И, как мы можем видеть в журналах, я думаю, вы указали mysql в качестве адаптера в вашем config/database.yml

измените его на :

   adapter: mysql2
 

Редактировать:

что касается вашей ошибки форматирования, я знаю, что должен использовать :

 bundle exec rake db:<command>
 

для того, чтобы выполнить rake сейчас, вы можете попробовать это?

РЕДАКТИРОВАТЬ 2 :

Что ж, я предлагаю вам использовать RVM для настройки вашего проекта с использованием ruby 1.9.2. Прочитайте документ RVM для простого руководства, как это сделать.

Затем выполните установку пакета

После этого убедитесь, что вы сделали:

 ruby -v
 

это должно быть 1.9.2

затем повторите попытку создания db:create следующим образом:

 bundle exec rake db:create:all
 

Надеюсь, это наконец сработает. 😉

Комментарии:

1. спасибо, я не заметил, что ранее я пробовал решение leonid и привел меня к этому, в / usr/lib/ruby/gems/1.8/cache/rake-0.9.2.2 не найдено метаданных.gem (Gem::Package::FormatError) извините, я просто новичок в мире ruby

2. Нет проблем, однажды я тоже был новичком, продолжайте в том же духе, вам понравится этот фреймворк, как только вы преодолеете эти начальные проблемы.

3. спасибо, есть идеи, как это решить? в /usr/lib/ruby/gems/1.8/cache/rake-0.9.2.2 не найдены метаданные.gem (Gem::Package::FormatError)

4. Ммм …. не могли бы вы отредактировать свой вопрос и опубликовать полную трассировку. И используете ли вы RVM (Ruby Version Manager) в своем env.?

5. готово, я уже отредактировал свой вопрос, мне кажется, что я не могу обновить свой gemfile. у меня есть rvm в моем env, но я не очень часто им пользуюсь