2010-04-24 25 views
0

我有興趣使用mysql數據庫創建rails應用程序。我是新來的導軌和我只是想開始創建一些簡單:將簡單的rails數據庫遷移到mysql

rails -d mysql MyMoviesSQL 
cd MyMoviesSQL 
script/generate scaffold Movies title:string rating:integer 
rake db:migrate 

我看到下面的錯誤:

rake aborted! 
NoMethodError: undefined method `ord' for 0:Fixnum: SET NAMES 'utf8' 

,如果我做了跟蹤:

** Invoke db:migrate (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute db:migrate 
rake aborted! 
NoMethodError: undefined method `ord' for 0:Fixnum: SET NAMES 'utf8' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract_adapter.rb:219:in `log' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:323:in `execute' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:599:in `configure_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:594:in `connect' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:203:in `initialize' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:75:in `new' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:75:in `mysql_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `send' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in `checkout' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `loop' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `checkout' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in `checkout' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in `connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in `retrieve_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retrieve_connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `connection' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/migration.rb:435:in `initialize' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/migration.rb:400:in `new' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/migration.rb:400:in `up' 
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/migration.rb:383:in `migrate' 
/Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/tasks/databases.rake:116 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/bin/rake:31 
/usr/bin/rake:19:in `load' 
/usr/bin/rake:19 

這裏是我的版本:

rails - 2.3.5 
ruby - 1.8.6 

寶石列表

*** LOCAL GEMS *** 

actionmailer (2.3.5, 1.3.6) 
actionpack (2.3.5, 1.13.6) 
actionwebservice (1.2.6) 
activerecord (2.3.5, 1.15.6) 
activeresource (2.3.5) 
activesupport (2.3.5, 1.4.4) 
acts_as_ferret (0.4.1) 
capistrano (2.0.0) 
cgi_multipart_eof_fix (2.5.0) 
daemons (1.0.9) 
dbi (0.4.3) 
deprecated (2.0.1) 
dnssd (0.6.0) 
fastthread (1.0.1) 
fcgi (0.8.7) 
ferret (0.11.4) 
gem_plugin (0.2.3) 
highline (1.2.9) 
hpricot (0.6) 
libxml-ruby (0.9.5, 0.3.8.4) 
mongrel (1.1.4) 
needle (1.3.0) 
net-sftp (1.1.0) 
net-ssh (1.1.2) 
rack (1.0.1) 
rails (2.3.5) 
rake (0.8.7, 0.7.3) 
RedCloth (3.0.4) 
ruby-openid (1.1.4) 
ruby-yadis (0.3.4) 
rubygems-update (1.3.6) 
rubynode (0.1.3) 
sqlite3-ruby (1.2.1) 
termios (0.9.4) 

另外,如果我需要一個補丁添加到Fixnum對象,可有人告訴該文件中添加補丁。

感謝您的幫助

+0

另外,對於script/generate腳手架,您應該使用小寫單數形式的模型名稱。 IOW,腳本/生成電影標題:字符串...而不是電影 – Fred 2010-04-24 21:55:53

+0

另外,你是否安裝了'gem install mysql'的mysql.rb驅動程序?我沒有在寶石列表中看到它,儘管你顯然有一些mysql_adapter存在。 – Fred 2010-04-24 22:11:55

回答

0

安裝mysql的寶石

*** LOCAL GEMS *** 

actionmailer (2.3.5, 1.3.6) 
actionpack (2.3.5, 1.13.6) 
actionwebservice (1.2.6) 
activerecord (2.3.5, 1.15.6) 
activeresource (2.3.5) 
activesupport (2.3.5, 1.4.4) 
acts_as_ferret (0.4.1) 
autotest (4.2.9) 
autotest-fsevent (0.2.2) 
autotest-growl (0.2.3) 
autotest-rails (4.1.0) 
capistrano (2.0.0) 
cgi_multipart_eof_fix (2.5.0) 
daemons (1.0.9) 
dbi (0.4.3) 
deprecated (2.0.1) 
dnssd (0.6.0) 
fastthread (1.0.1) 
fcgi (0.8.7) 
ferret (0.11.4) 
gem_plugin (0.2.3) 
highline (1.2.9) 
hpricot (0.6) 
libxml-ruby (0.9.5, 0.3.8.4) 
mongrel (1.1.4) 
mysql (2.8.1) 
needle (1.3.0) 
net-sftp (1.1.0) 
net-ssh (1.1.2) 
rack (1.0.1) 
rails (2.3.5) 
rake (0.8.7, 0.7.3) 
RedCloth (3.0.4) 
rspec (1.3.0) 
rspec-rails (1.3.2) 
ruby-openid (1.1.4) 
ruby-yadis (0.3.4) 
rubygems-update (1.3.6) 
rubynode (0.1.3) 
sqlite3-ruby (1.2.1) 
sys-uname (0.8.4) 
termios (0.9.4) 
ZenTest (4.3.1) 

仍然發生

耙分貝:遷移

耙中止! NoMethodError:undefined方法'ord'for 0:Fixnum:SET NAMES'utf8'

+1

想要建議您編輯/更新原始問題文本,而不是添加解釋所做更改的答案。答案不是評論。 – 2010-04-26 08:16:37