Я пытаюсь использовать 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)
Если вы не используете Windows, и ваши данные разработки являются разумными (< 10k rows/table), я бы переключился на SQLite. Он достаточно общий, чтобы вы могли безболезненно развертывать MySQL. Установка SQLite в Windows довольно проста - вам просто нужно использовать более старую версию драгоценного камня, поскольку самая новая из них сломана.
Postgres - это еще одна история. Я бы не использовал его, если SQLite будет работать. Это делает зависящие от регистра запросы по умолчанию при использовании LIKE, в отличие от SQLite или MySQL. Если вы его используете, проверьте свои плагины для запросов LIKE.
У вас нет других ошибок, например, отсутствующих файлов dll и т.д.? Обычно с соединителями базы данных вы должны добавить файлы appripriate dll (например, mysql.dll) в каталог PATH (или в rubys "bin" ), поэтому ruby может их найти.