ruby-on-rails – rake db:migrate VERSION = 0表不存在
发布时间:2020-12-17 03:15:34 所属栏目:百科 来源:网络整理
导读:我正在关注Lynda ruby?? on rails教程.几次尝试失败后,我已经运行了代码“rake db:migrate”.然后告诉我运行“rake db:migrate VERSION = 0”.这再次给了我错误,这次我无法解决它.我昨晚和今天早上都试过无济于事. 请记住,在回答我是新手编码时,请以新手可
我正在关注Lynda
ruby?? on rails教程.几次尝试失败后,我已经运行了代码“rake db:migrate”.然后告诉我运行“rake db:migrate VERSION = 0”.这再次给了我错误,这次我无法解决它.我昨晚和今天早上都试过无济于事.
请记住,在回答我是新手编码时,请以新手可以理解的方式解释. lexi87$rake db:migrate VERSION=0 == AlterUsers: reverting ===================================================== -- remove_index("admin_users","username") rake aborted! An error has occurred,all later migrations canceled: Index name 'index_admin_users_on_username' on table 'admin_users' does not exist /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/schema_statements.rb:587:in `index_name_for_remove' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/schema_statements.rb:366:in `remove_index' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:466:in `block in method_missing' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:438:in `block in say_with_time' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:438:in `say_with_time' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:458:in `method_missing' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:334:in `method_missing' /Users/lexi87/Sites/simple_cms/db/migrate/20130108015542_alter_users.rb:14:in `down' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:376:in `down' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:410:in `block (2 levels) in migrate' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:410:in `block in migrate' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:129:in `with_connection' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:389:in `migrate' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:528:in `migrate' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:720:in `block (2 levels) in migrate' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:777:in `call' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:777:in `ddl_transaction' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:719:in `block in migrate' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:700:in `each' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:700:in `migrate' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:574:in `down' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/migration.rb:555:in `migrate' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.9/lib/active_record/railties/databases.rake:179:in `block (2 levels) in <top (required)>' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/bin/ruby_noexec_wrapper:14:in `eval' /Users/lexi87/.rvm/gems/ruby-1.9.2-p320/bin/ruby_noexec_wrapper:14:in `<main>' Tasks: TOP => db:migrate (See full trace by running task with --trace) 这是rb文件. class AlterUsers < ActiveRecord::Migration def self.up rename_table("users","admin_users") add_column("admin_users","username",:string,:limit => 25) change_column("admin_users","email",:limit => 100) rename_column("admin_users","password","hashed_password") add_column("admin_users","salt",:limit => 40) puts "*** About to add an index ***" add_index("admin_users","username") end def self.down remove_index("admin_users","username") remove_column("admin_users","salt") remove_column("admin_users","hashed_password","password") remove_column("admin_users",:default => "",:null => false) remove_column("admin_users","username") rename_table("admin_users","users") end end 解决方法
您正在删除不存在的索引.始终使用以下顺序:
1)rake db:create 2)rake db:migrate 此外,在您遇到的错误的上下文中,请记住rake db:migrate VERSION = 0将删除所有迁移,如果这是您正在尝试执行的操作,并且因为之前没有索引,所以它将通过错误. 我还怀疑你的包含mysql设置的database.yml文件有错误的凭据,尤其是用户名和密码的设置.检查并更正它,然后进行迁移. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |