Ruby on rails 数据库迁移错误

Ruby on rails 数据库迁移错误,ruby-on-rails,linux,migrate,Ruby On Rails,Linux,Migrate,我在尝试执行rake db:migrate时遇到以下错误: rake db:migrate -- selt() -- selt() rake aborted! ActiveRecord::MigrationProxy#disable_ddl_transaction delegated to migration.disable_ddl_transaction, but migration is nil: #<struct ActiveRecord::MigrationProxy name="

我在尝试执行rake db:migrate时遇到以下错误:

rake db:migrate
-- selt()
-- selt()
rake aborted!
ActiveRecord::MigrationProxy#disable_ddl_transaction delegated to migration.disable_ddl_transaction, but migration is nil: #<struct ActiveRecord::MigrationProxy name="DoNothingYet", version=20130722001522, filename="/Users/tidydee/Sites/simple_cms/db/migrate/20130722001522_do_nothing_yet.rb", scope="">
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:712:in `rescue in disable_ddl_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:708:in `disable_ddl_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:1012:in `use_transaction?'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:922:in `rescue in block in migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:919:in `block in migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `each'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `up'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:742:in `migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
rake数据库:迁移
--selt()
--selt()
雷克流产了!
ActiveRecord::MigrationProxy#禁用委托给迁移的ddl_事务。禁用ddl_事务,但迁移为零:#
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:712:“在禁用ddl\u事务中救援”
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:708:在“禁用ddl\u事务”中
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:1012:在“使用交易”中
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:922:在“迁移中的块中救援”中
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:919:在“迁移中的块”中
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:916:in'each'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:916:in“migrate”
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:764:in'up'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:742:in“migrate”
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/railties/databases.rake:42:in`block(2层)in'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/bin/ruby\u noexec\u包装:14:in'eval'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/bin/ruby\u noexec\u包装:14:in`'
任务:TOP=>db:migrate
(通过使用--trace运行任务查看完整跟踪)
这是我的DoNothingYet迁移文件:

class DoNothingYet < ActiveRecord::Migration
  def change
  end

  def self.up 
    # instructions for changing the db to a new state
  end

  def selt.down
    #intructiosn for changing the db back to the previous state
  end
end
class DoNothingYet
语法错误:

rake db:migrate
rake aborted!
/Users/tidydee/Sites/simple_cms/db/migrate/20130722001921_create_users.rb:4: syntax error, unexpected ':', expecting keyword_end
    t.string "first_name" :limit => 25
                           ^
/Users/tidydee/Sites/simple_cms/db/migrate/20130722001921_create_users.rb:5: syntax error, unexpected ':', expecting keyword_end
    t.string "last_name" :limit => 50
                          ^
/Users/tidydee/Sites/simple_cms/db/migrate/20130722001921_create_users.rb:6: syntax error, unexpected ':', expecting keyword_end
    t.string "email" :default => "", :null => false
                      ^
/Users/tidydee/Sites/simple_cms/db/migrate/20130722001921_create_users.rb:7: syntax error, unexpected ':', expecting keyword_end
    t.string "password" :limit => 40
                         ^
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:718:in `load_migration'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:714:in `migration'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:708:in `disable_ddl_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:1012:in `use_transaction?'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:1004:in `ddl_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:958:in `execute_migration_in_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:920:in `block in migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `each'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `up'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:742:in `migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>'
rake数据库:迁移
雷克流产了!
/Users/tidyde/Sites/simple\u cms/db/migrate/20130722001921\u create\u Users.rb:4:语法错误,意外“:”,应为关键字\u end
t、 字符串“first_name”:limit=>25
^
/Users/tidyde/Sites/simple\u cms/db/migrate/20130722001921\u create\u Users.rb:5:语法错误,意外“:”,应为关键字\u end
t、 字符串“姓氏”:限制=>50
^
/Users/tidyde/Sites/simple\u cms/db/migrate/20130722001921\u create\u Users.rb:6:语法错误,意外“:”,应为关键字\u end
t、 字符串“email”:default=>,:null=>false
^
/Users/tidyde/Sites/simple\u cms/db/migrate/20130722001921\u create\u Users.rb:7:语法错误,意外“:”,应为关键字\u end
t、 字符串“密码”:限制=>40
^
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active\u support/dependencies.rb:228:in'require'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active\u-support/dependencies.rb:228:in'block in require'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active\u support/dependencies.rb:213:in'load\u dependency'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active\u support/dependencies.rb:228:in'require'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u-record/migration.rb:718:in'load\u migration'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:714:in“migration”
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:708:在“禁用ddl\u事务”中
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:1012:在“使用交易”中
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:1004:in'ddl\u transaction'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:958:in“execute\u migration\u in\u transaction”
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:920:在“迁移中的块”中
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:916:in'each'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:916:in“migrate”
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:764:in'up'
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/migration.rb:742:in“migrate”
/Users/tidyde/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active\u record/railties/databases.rake:42:in`block(2层)in'
用户的迁移文件:

class CreateUsers < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
    t.string "first_name" :limit => 25
    t.string "last_name" :limit => 50
    t.string "email" :default => "", :null => false
    t.string "password" :limit => 40
    t.timestamps

    end
  end

def self.down
   drop_table:us   
end

end
class CreateUsers25
t、 字符串“姓氏”:限制=>50
t、 字符串“email”:default=>,:null=>false
t、 字符串“密码”:限制=>40
t、 时间戳
结束
结束
def自动关闭
投桌:美国
结束
结束

有人知道为什么吗?我怎样才能让它正确迁移呢

这部分有错误

def selt.down
end
应该是:

def self.down
end
另外,在迁移中,您应该

t.string "first_name", :limit => 25
而不是

t.string "first_name" :limit => 25

你能发布你的
20130722001522\u dou\u nothing\u.rb
迁移文件吗?谢谢你的帮助。请看我上面的更新。谢谢!!!如此愚蠢的小事会引起如此大的问题。我想知道你是否知道为什么我也会出现语法错误?请看上面的更新。如果我看得清楚,你缺少一个逗号。您是否也可以为用户发布迁移文件?