MySQL / Ruby в Windows - PullRequest
       2

MySQL / Ruby в Windows

0 голосов
/ 21 июня 2009

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

> 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)

Ответы [ 2 ]

0 голосов
/ 21 июня 2009

Если вы не развертываете в Windows, и ваши данные разработки являются разумными (<10k строк / таблица), я бы переключился на SQLite. Это достаточно универсально, чтобы вы могли безболезненно развертывать на MySQL. <a href="http://wiki.devchix.com/index.php?title=Server_2003#SQLite_and_the_SQLite_gem" rel="nofollow noreferrer"> Установка SQLite в Windows довольно проста - вам просто нужно использовать более старую версию гема, так как самая новая сломана.

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

0 голосов
/ 21 июня 2009

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

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