MySQL / Ruby в Windows

0

Я пытаюсь использовать Rails 2.3.2 с MySQL 5.0 в Windows XP без везения.
Я установил MySQL и могу запустить его, добавить таблицы и т.д.
В ruby ​​запрос require mysql проходит, но onde он достиг первого действия, после чего я получаю

> C:/Development/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/mysql_adapter.rb:7:in `define_all_hashes_method!': Mysql not loaded (RuntimeError)
        from C:/Development/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/mysql_adapter.rb:71:in `mysql_connection'
        from C:/Development/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `send'
        from C:/Development/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection'
        from C:/Development/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection'
        from C:/Development/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in `checkout'

Любая идея, что я делаю неправильно?

require 'rubygems'
require 'activerecord'
require 'mysql'

ActiveRecord::Base.establish_connection(
    :adapter => "mysql",
    :host => "127.0.0.1",
    :database => "ruby"
)


class Student < ActiveRecord::Base
end
Student.find(:all)
  • 0
    Как выглядят ваши пути? Можете ли вы вызвать irb из командной строки?
  • 0
    Да, на моем пути есть и ruby / bin, и mysql / bin
Показать ещё 2 комментария
Теги:

2 ответа

0

Если вы не используете Windows, и ваши данные разработки являются разумными (< 10k rows/table), я бы переключился на SQLite. Он достаточно общий, чтобы вы могли безболезненно развертывать MySQL. Установка SQLite в Windows довольно проста - вам просто нужно использовать более старую версию драгоценного камня, поскольку самая новая из них сломана.

Postgres - это еще одна история. Я бы не использовал его, если SQLite будет работать. Это делает зависящие от регистра запросы по умолчанию при использовании LIKE, в отличие от SQLite или MySQL. Если вы его используете, проверьте свои плагины для запросов LIKE.

  • 0
    Развертывание в Linux. БД будет содержать хотя бы одну таблицу с 10-15К записями. Если нет никакой разницы в том, что касается SQL, то разработка на SQLite была бы лучшим решением.
0

У вас нет других ошибок, например, отсутствующих файлов dll и т.д.? Обычно с соединителями базы данных вы должны добавить файлы appripriate dll (например, mysql.dll) в каталог PATH (или в rubys "bin" ), поэтому ruby ​​может их найти.

  • 0
    Я прочитал несколько мест о размещении mysql.dll в ruby / bin, но это не имело значения.
  • 0
    Вы должны иметь (почти) ту же версию mysql, с которой был скомпилирован самоцвет mysql, или перекомпилировать его самостоятельно. (Никто не прост). Или вы можете переключиться на SQLite или Postgres, у них обычно меньше проблем с окнами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню