web-dev-qa-db-ja.com

rails sqliteアダプタエラー

私は Railsチュートリアル の指示に従い、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で実行しています。

何か案は?

18
Ohad Horesh

問題を見つけました。私のRailsインストールにはSQLite 1.3.3と1.3.4の両方が含まれていることに気付きました。Gemfileを次のように変更しました:

gem 'sqlite3', '1.3.3'

に:

gem 'sqlite3', '1.3.4'

それで問題は解決しました。ありがとう @ holger-justtheir answer のエラーメッセージの関連する行を私に示してくれた。

19
Ohad Horesh

推奨されるインストールコマンド:

gem install activerecord-jdbc-sqlite3-adapter

実際のインストールコマンド:

gem install activerecord-jdbcsqlite3-adapter

リファレンス: http://kenai.com/jira/browse/ACTIVERECORD_JDBC-19

10
jduyan

エラーメッセージの重要な部分は次のスニペットです。

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これはおそらくこれらの問題を解決します。

3
Holger Just

またRailsチュートリアル、実行した:

  $ rake db:migrate

次のエラーが発生しました:

Sqlite3アダプターをインストールしてください:gem install activerecord-sqlite3-adapter(sqlite3はバンドルの一部ではありません。Gemfileに追加してください。).

ラン:

$ gem install activerecord-sqlite3-adapter

取得:

エラー:リポジトリで有効なgem 'activerecord-sqlite3-adapter'(> = 0)が見つかりませんでした

上記の回答のいずれかに従ってGemfileを変更しました:

gem 'sqlite3'、 '1.3.4'

別のエラーが発生したため、インストールする必要がありました:

$ gem install sqlite3 -v '1.3.4'

$ rake db:migrateを再度実行しようとしましたが、今度は上記の答えに似た別のエラーが発生しました。

Sqlite3アダプタをインストールしてください:gem install activerecord-sqlite3-adapter(sqlite3をアクティブにできません(〜> 1.3.5)、すでにアクティブになっているsqlite3-1.3.4。すべての依存関係がGemfileに追加されていることを確認してください。)

したがって、Gemfileを次のように変更しました。

gem 'sqlite3'、 '1.3.5'

また、「gem install sqlite3 -v '1.3.5」が成功することを確認する別のエラーメッセージが表示されました(wtf ?!大丈夫です)。正常にインストールされ、バンドルインストールが実行されました。

実行してみました:

$ rake db:migrate

何も起こらなかったので、試してみました:

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

上記の別の提案に従って。そして、それは最終的に機能しました。チュートリアルは面倒なセットアッププロセスを警告しましたが、少なくとも5人の他の人と混ぜて一致させる必要があるように感じました。これが次の人に役立つことを願っています。

2

の代わりに

gem install activerecord-sqlite3-adapter

走る

gem install sqlite3
2
mopsled