【问题标题】:Wrong number of arguments thrown by rake db:migraterake db:migrate 抛出的参数数量错误
【发布时间】:2016-06-19 23:40:51
【问题描述】:

我正在尝试运行迁移,但我不断收到错误消息。

我们尝试删除迁移的内容,只留下以下内容:

class CreateUsers < ActiveRecord::Migration
  def change      
  end
end

这仍然会导致错误消息:

$ be rake db:migrate
== 20160619232005 CreateUsers: migrating ======================================
-- create_table(:users)    -> 0.0042s
== 20160619232005 CreateUsers: migrated (0.0043s) =============================

rake aborted! 
  StandardError: An error has occurred, this and all later migrations canceled:

wrong number of arguments (given 1, expected 0) 
/home/ericmarche/.rbenv/versions/2.3.1/bin/bundle:22:in `load' 
/home/ericmarche/.rbenv/versions/2.3.1/bin/bundle:22:in `<main>' ArgumentError: wrong number of arguments (given 1, expected 0) 
/home/ericmarche/.rbenv/versions/2.3.1/bin/bundle:22:in `load' 
/home/ericmarche/.rbenv/versions/2.3.1/bin/bundle:22:in `<main>' Tasks: TOP => db:migrate (See full trace by running task with --trace)

【问题讨论】:

  • 您使用的是Ruby on RailsRubyBundler 的哪个版本?
  • Rails 4.2.0.beta2 Bundler version 1.12.5 ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

标签: ruby-on-rails ruby migration bundler


【解决方案1】:

您可以使用以下命令删除整个内容:

rails d model user

然后重新创建它,然后尝试重新迁移:

rails g model user
rake db:migrate

您可以转到 rails 控制台并删除用户表并重新迁移

rails c #-> to go to the console
ActiveRecord::Migration.drop_table(:users) #-> to delete users table
exit #-> to exit console

然后尝试重新迁移表

【讨论】:

  • 不起作用。我尝试创建一个新项目,生成一个新模型,然后跟进be rake db:migrate,它抛出了同样的异常。
  • 在 rake 之前的“be”是什么意思,你可以在运行命令时尝试省略它
【解决方案2】:

为什么要使用 be rake db:migrate 进行迁移 be 是什么意思。

在没有be 的项目目录中运行迁移,例如rake db:migrate

例如:

$cd workspace/project

workspace/project$ rake db:migrate

【讨论】:

    【解决方案3】:

    您是否尝试创建一个新项目并运行

    bundle exec rake db:migrate
    

    【讨论】:

      猜你喜欢
      • 2018-10-06
      • 2018-02-05
      • 2015-01-25
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      相关资源
      最近更新 更多