数据库连接应该没有问题.
因为可以在mysql的数据库中建立
schema_migrations表
数据库创建的代码很简单.
def self.up
create_table :subjects do |t|
t.columns :title, :string
t.columns :description, :text
end
end
执行rake db:migrate 以后会报告错误.
== CreateSubjects: migrating ========================
-- create_table(:subjects)
rake aborted!
An error has occurred, all later migrations canceled:
因为刚用ruby,不是很熟悉,加上--trace以后,也看不出来具体是什么问题.
rake是0.8.4的版本.
rails是2.3.2
ruby是1.8.6
gem是1.3.1
mysql 是5.1.32的64位版本,我是在windows 2008上用netbeans开发的.
请熟悉的人给解答一下可能的问题,或者是能查找原因的方法,谢谢
[b]问题补充:[/b]
1.执行了上面这位提供的脚本,测试数据库连接没有问题的。
2.下面大家帮我看看trace的信息吧。
E:\Dev\DynamicTraining>rake db:migrate --trace
(in E:/Dev/DynamicTraining)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
== CreateSubjects: migrating =================================================
-- create_table(:subjects)
rake aborted!
An error has occurred, all later migrations canceled:
wrong number of arguments (2 for 0)
./db/migrate//20090326160428_create_subjects.rb:4:in columns'
up_without_benchmarks'
./db/migrate//20090326160428_create_subjects.rb:4:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_a
dapters/abstract/schema_statements.rb:104:in create_table'
create_table'
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_a
dapters/mysql_adapter.rb:473:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:352:in send'
method_missing'
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:352:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:328:in say_with_time'
measure'
D:/ruby/lib/ruby/1.8/benchmark.rb:293:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:328:in say_with_time'
method_missing'
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:348:in
./db/migrate//20090326160428_create_subjects.rb:3:in up_without_benchmarks'
send'
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:282:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:282:in migrate'
measure'
D:/ruby/lib/ruby/1.8/benchmark.rb:293:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:282:in migrate'
__send__'
(__DELEGATION__):2:in
(__DELEGATION__):2:in migrate'
migrate'
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:486:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:562:in call'
ddl_transaction'
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:562:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:485:in migrate'
each'
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:472:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:472:in migrate'
up'
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:400:in
D:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb
:383:in migrate'
call'
D:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/tasks/databases.rake:116
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:617:in
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:617:in execute'
each'
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:612:in
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:612:in execute'
invoke_with_call_c
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:578:in
hain'
D:/ruby/lib/ruby/1.8/monitor.rb:242:in synchronize'
invoke_with_call_c
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:571:in
hain'
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:564:in invoke'
invoke_task'
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2027:in
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in top_level'
each'
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in top_level'
standard_exceptio
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2044:in
n_handling'
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1999:in top_level'
run'
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1977:in
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2044:in standard_exceptio
run'
n_handling'
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1974:in
D:/ruby/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake:31
D:/ruby/bin/rake:16:in `load'
D:/ruby/bin/rake:16
谢谢
[b]问题补充:[/b]
我已经按照您的提示,将columns的s去掉了.因为我是用的netbeans,它自动给补充的是columns,我没有注意后面还有一个方法.
目前已经完全正确了,非常感谢.