2009-06-20 4 views
0

Ich versuche, Rails 2.3.2 mit MySQL 5.0 auf Windows XP ohne Glück zu verwenden.
Ich habe MySQL installiert und bin in der Lage, um sie auszuführen, fügen Sie Tabellen usw.
In Rubin, so geht die require ‚mysql‘ Aussage aber onde es die erste Aktion dann erreicht bekomme ichMySQL/Ruby unter Windows

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

Jede Idee, was Ich mache falsch?

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

Wie sehen Ihre Pfade aus? Können Sie irb von der Befehlszeile aus aufrufen? –

+0

Ja, haben beide Ruby/bin und mysql/bin in meinem Pfad –

+0

Rails 3.2.3 ist noch nicht freigegeben. Vielleicht reden Sie über Rails 2.3.2 ...;) –

Antwort

0

Erhalten Sie keine anderen Fehler, wie fehlende DLL-Dateien usw.? Normalerweise müssen Sie bei Datenbankanschlüssen die entsprechenden DLL-Dateien (wie mysql.dll) zum PATH hinzufügen (oder in Rubys "bin" -Verzeichnis), damit Ruby sie finden kann.

+0

Ich habe mehrere Stellen über die Platzierung der mysql.dll in Ruby/bin gelesen, aber das machte keinen Unterschied. –

+0

Sie müssen die (fast) gleiche Version von mysql haben, mit der das mysql-Juwel kompiliert wurde, oder Sie kompilieren den Edelstein selbst. (Weder ist einer einfach). Oder Sie möchten zu SQLite oder Postgres wechseln, sie haben normalerweise weniger Probleme mit Windows. – SztupY

0

Wenn Sie nicht nach Windows bereitstellen und Ihre Entwicklungsdaten vernünftig sind (< 10k Zeilen/Tabelle), würde ich zu SQLite wechseln. Es ist ausreichend generisch, dass Sie in der Lage sein sollten, schmerzlos auf MySQL zu implementieren. SQLite installation on Windows is pretty easy - Sie müssen nur eine ältere Version des Edelsteins verwenden, da das neueste kaputt ist.

Postgres ist eine andere Geschichte. Ich würde es nicht verwenden, wenn SQLite funktioniert. Bei der Verwendung von LIKE wird im Gegensatz zu SQLite oder MySQL standardmäßig zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie es verwenden, überprüfen Sie Ihre Plugins für LIKE-Abfragen.

+0

Die Bereitstellung erfolgt unter Linux. DB enthält mindestens eine Tabelle mit 10-15K Datensätzen. Wenn es keinen Unterschied in Bezug auf SQL gibt, dann wäre die Entwicklung auf SQLite die beste Lösung. –