Невозможно использовать sqlite3 с ruby ​​1.9.2 и rails 3.0.0 в Windows

Я должен сначала немного объяснить свой контекст, а затем задать вопрос:

  1. Я использую Ruby on Rails уже 3 года с разными приложениями и обновился с 1.2 до 2.3.9. Я хочу обновиться до 3.0.0 как можно быстрее.
  2. Все, что я читал об этом, говорило об использовании текущей версии 1.9.2 Ruby для работы с Rails 3.0.0, поэтому я установил предварительно скомпилированный двоичный файл 1.9.2 в Windows.
  3. Я вспомнил, что sqlite3 нуждается в DLL, установленной где-то в пути, поэтому я скопировал ее в новый каталог bin.
  4. Я также установил необходимый sqlite3-ruby.
  5. Я создал новое приложение, сгенерировал фиктивную миграцию таблицы и попытался выполнить «rake db: migrate».
  6. Ответ был: rake aborted! no driver for sqlite3 found

Я искал и нашел несколько ответов, в которых говорилось, что нужно установить двоичный файл для sqlite3 самостоятельно (что мне недоступно).

Итак, вот вопрос:

Какова правильная настройка для использования Rails 3.0.0 на Ruby 1.9.2 в Windows?

Кстати, при установке только sqlite3-ruby я получил более новую версию (1.3.1), которая вроде бы работала. Но когда я захотел использовать это в рельсах, рельсы настояли на установке версии 1.2.5 (что, очевидно, не работает для меня).


person mliebelt    schedule 25.09.2010    source источник
comment
Здравствуйте, какую версию sqlite3.dll вы скопировали? если вы установили sqlite3-ruby, то он должен указать вам, какая версия DLL вам нужна. Кроме того, Rails 3 нуждается в драгоценных камнях в комплекте. Вы читали документацию Bundler?   -  person Luis Lavena    schedule 26.09.2010
comment
Привет Луис, спасибо за ваш вопрос. Версия, которую я скопировал, была правильной, но я установил более старую версию sqlite3-ruby, и она не работала с установленной мной DLL. Кстати, что значит читать документацию Bundler? Документации по Rails 3 очень много, поэтому вы не знаете, с чего начать.   -  person mliebelt    schedule 27.09.2010


Ответы (1)


Ну, я знаю, что это плохой стиль, но я нашел для себя одно решение. Я не знаю, почему это не сработало в первую очередь...

Решение для меня было:

  1. Установите последнюю версию sqlite3-ruby (на данный момент версия 1.3.1)

  2. Эта установка дает вам (в виде текста в оболочке DOS) информацию о том, куда скопировать правильный sqlite3.dll. Обязательно скопируйте его в каталог bin Ruby (или в любое другое место на вашем пути).

  3. Убедитесь, что в вашем Gemfile (app-root/Gemfile) указано требование:

    gem 'sqlite3-ruby', ">= 1.3.1", :require => 'sqlite3'

  4. Сделайте 'rake db: migrate' сейчас (что должно сработать тогда).

Я не нашел причину, по которой Rails 3.0.0 настаивал на установке версии sqlite3-ruby 1.2.5, но с этой установленной версией sqlite3 у меня не работал.

person mliebelt    schedule 27.09.2010
comment
Это работало и на моей машине OS X. Я добавил следующее в свой gemfile, и это решило проблему. gem 'sqlite3-ruby', ›= 1.3.1, :require =› 'sqlite3'. В настоящее время я использую ruby ​​​​1.9.2 и Rails 1.3. - person mattwallace; 08.06.2011