【问题标题】:Rake aborted even after completely running migration即使在完全运行迁移后,Rake 也会中止
【发布时间】:2014-02-17 10:09:47
【问题描述】:

当我生成一个新的迁移并通过上下检查时,我得到“rake aborted!”最后当我下楼时,虽然它运行了所有的迁移。并且在上迁移过程中没有任何问题,一切都很顺利。谁能告诉我为什么会这样?

 $ rake db:migrate VERSION= 20140217090240
==  CreateSections: reverting =================================================
-- drop_table(:sections)    -> 0.0050s
==  CreateSections: reverted (0.0060s) ========================================

==  CreatePages: reverting ====================================================
-- drop_table(:pages)    -> 0.0030s
==  CreatePages: reverted (0.0040s) ===========================================

==  CreateSubjects: reverting =================================================
-- drop_table(:subjects)    -> 0.0030s
==  CreateSubjects: reverted (0.0230s) ========================================

==  AlterUsers: reverting =====================================================
-- remove_index("admin_users", "username")    -> 0.0180s
-- rename_column("admin_users", "hashed_password", "password")    -> 0.0160s
-- change_column("admin_users", "email", :string, {:default=>"", :null=>false})    -> 0.0110s
-- remove_column("admin_users", "username")    -> 0.0110s
-- rename_table("admin_users", "users")    -> 0.0030s
==  AlterUsers: reverted (0.0680s) ============================================

==  CreateUsers: reverting ====================================================
-- drop_table(:users)    -> 0.0040s
==  CreateUsers: reverted (0.0040s) ===========================================

rake aborted! Don't know how to build task '20140217090240'

(See full trace by running task with --trace)

class CreateUsers < ActiveRecord::Migration
  def 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 down
    drop_table :users
  end
end

【问题讨论】:

  • 请粘贴您的错误。
  • 不清楚。请提供一些有用的信息。

标签: ruby-on-rails migration rake


【解决方案1】:

使用

开始迁移

  rake db:migrate:up VERSION=version number of migration

为了向下迁移运行

 rake db:migrate:down VERSION=version number of migration

【讨论】:

    【解决方案2】:

    您的“CreateUsers”迁移文件包含错误。请先观察用户创建文件。它可能具有一些依赖性,例如您在创建迁移中添加了某些用户角色,但角色表未在用户表之前创建。如果您将“CreateUsers”迁移文件粘贴到某处,然后将链接粘贴到此处,就很容易找出问题所在。

    【讨论】:

    • 我已经粘贴了上面的 CreateUsers 类。我看不出有什么问题。你能发现什么吗?
    • 请检查向上迁移。 ':' 和 'users' 之间是否有空格,例如 create_table :users
    • 请参阅“20140217090240”迁移编号。是不是创建用户迁移文件?或者你可以通过 rake db:migrate --trace 运行
    • 请使用 rake db:migrate 或仅 rake db:migrate:up VERSION=version_number_of_migration 运行所有迁移
    猜你喜欢
    • 2023-03-04
    • 2013-03-12
    • 2013-06-28
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    相关资源
    最近更新 更多