rails ошибка адаптера sqlite - PullRequest
       2

rails ошибка адаптера sqlite

18 голосов
/ 10 сентября 2011

Я следую инструкциям rails tutorial и застрял при попытке использовать команду scaffold.

При работе:

rails generate scaffold User name:string email:string  

Я получаю ошибку:

C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.) (RuntimeError)

Продолжительность:

gem install activerecord-sqlite3-adapter

Я получил ошибку:

ERROR:  Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository
ERROR:  Possible alternatives: activerecord-jdbcsqlite3-adapter, activerecord-sqlserver-adapter, activerecord-nulldb-adapter, activerecord-spatialite-adapter, activerecord-simpledb-adapter

Мой Gemfile выглядит так:

source 'http://rubygems.org'
gem 'rails', '3.1.0'  
gem 'sqlite3', '1.3.3'  
...

Я работаю на Windows 7 x64 OS.

Есть идеи?

Ответы [ 6 ]

19 голосов
/ 10 сентября 2011

Хорошо, я нашел проблему.Я заметил, что в моей установке Rails есть и SQLite 1.3.3, и 1.3.4. Я изменил свой Gemfile с:

gem 'sqlite3', '1.3.3'

на:

gem 'sqlite3', '1.3.4'

Это решило проблему.Спасибо @ holger-just за указание на соответствующую строку в сообщении об ошибке в их ответе .

10 голосов
/ 22 сентября 2011

предложенная команда установки:

gem install activerecord-jdbc-sqlite3-adapter

фактическая команда установки:

gem install activerecord-jdbcsqlite3-adapter

Ссылка: http://kenai.com/jira/browse/ACTIVERECORD_JDBC-19

3 голосов
/ 10 сентября 2011

Важной частью вашего сообщения об ошибке является следующий фрагмент:

can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.

Чтобы исправить это, вы всегда должны запускать свои команды через bundle exec, например,

bundle exec rails generate scaffold User name:string email:string 

., вы даете бандлеру полный контроль над $LOAD_PATH, что, вероятно, решит эти проблемы.

2 голосов
/ 30 мая 2013

Также в Rails Tutorial, run:

  $ rake db:migrate

Получена следующая ошибка:

Пожалуйста, установите адаптер sqlite3: gem install activerecord-sqlite3-adapter (sqlite3 не являетсячасть пакета. Добавьте его в Gemfile.).

Ран:

$ gem install activerecord-sqlite3-adapter

Получено:

ОШИБКА: Не удалось найти действительный гем 'activerecord-sqlite3-adapter' (> = 0) в любом репозитории

Изменен Gemfile согласно одному из ответов выше:

gem 'sqlite3', '1.3.4'

Получена еще одна ошибка, поэтому пришлось установить:

$ gem install sqlite3 -v '1.3.4'

Попытался запустить $ rake db: выполнить миграцию снова, но получил другую ошибку,на этот раз напоминает ответ выше:

Пожалуйста, установите адаптер sqlite3: gem install activerecord-sqlite3-adapter (невозможно активировать sqlite3 (~> 1.3.5), уже активирован sqlite3-1.3.4. Убедитесь, что всезависимости добавлены в Gemfile.)

Таким образом, Gemfile изменился на:

gem 'sqlite3', '1.3.5'

Иполучил еще одну ошибкуСообщение r, чтобы убедиться, что 'gem install sqlite3 -v' 1.3.5 'завершился успешно (wtf ?!хорошо снова).Успешно установил, запустил пакетную установку.

Пробовал запустить:

$ rake db:migrate

Ничего не произошло, поэтому попробовал:

$ bundle exec rails generate scaffold User name:string email:string

По другому предложению выше.И это наконец-то сработало.Учебное пособие предупредило о трудоемком процессе установки, но я чувствовал, что должен был смешивать и сочетать, по крайней мере, с 5 другими людьми.Надеюсь, это поможет следующему человеку.

2 голосов
/ 09 января 2013

вместо

gem install activerecord-sqlite3-adapter

пробег * * 1004

gem install sqlite3
2 голосов
/ 29 сентября 2011

у меня тоже была эта ошибка, покупка моей проблемы была немного другой. проблема в том, что sqlite3-ruby устарела и должна быть заменена на sqlite3. В веб-трансляции Майкла Хартла он все еще использовал старый sqlite3-ruby.

Я отредактировал свой gemfile, чтобы использовать sqlite 1.3.4 вместо sqlite3-ruby 1.3.1. перезапустил пакетную установку, и вуаля, проблема решена!

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