mysql - Rake 不会回滚迁移,参数数量错误(1 代表 0)

标签 mysql ruby-on-rails ruby-on-rails-4

我有一个包含多个表的项目,仍处于早期开发阶段。我需要对迁移进行一些更改,并希望回滚以正确执行此操作。这些都是细微的更改,我更愿意直接编辑迁移而不是创建更改迁移。

当我运行rake db:rollback时,出现以下异常:

wrong number of arguments (1 for 0)/Users/mmo/.rvm/gems/ruby-2.2.4/gems/activerecord-4.2.5/lib/active_record/migration.rb:492:in `initialize'

这个数据库是全新的——我刚刚完成了rake db:drop db:migrate

并且rake db:migrate:status显示:

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20151229013054  Create courses
   up     20151229013055  Create races
   up     20151229013326  Create events
   up     20151229013400  Create countries
   up     20151229013424  Create participants
   up     20151229013616  Create efforts
   up     20151229013622  Create locations
   up     20151229013757  Create splits
   up     20151229013938  Create split times
   up     20151229014302  Create users
   up     20160129060100  Create interests
   up     20160131195951  Create ownerships

Gemfile 看起来像这样:

source 'https://rubygems.org'
ruby '2.2.4'
gem 'rails', '4.2.5'
gem 'sqlite3'
gem 'responders', '~> 2.0'
gem 'mysql2', '~> 0.3.18'
gem 'sass-rails', '~> 5.0.4'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'jbuilder', '~> 2.0'
gem 'kaminari'
gem 'turbolinks'
group :development, :test do
  gem 'byebug'
end
group :development do
  gem 'web-console', '~> 2.0'
  gem 'spring'
end
gem 'bootstrap-sass'
gem 'high_voltage'
gem 'omniauth'
gem 'omniauth-facebook'
gem 'devise'
gem 'pundit'
gem 'rails_apps_pages'
gem 'therubyracer', :platform=>:ruby
gem 'ar-audit-tracer'
gem 'oj'
gem 'alchemist'
group :development do
  gem 'better_errors'
  gem 'foreman'
  gem 'rails_layout'
end
group :development, :test do
  gem 'pry-rails'
  gem 'pry-rescue'
  gem 'rubocop', '~> 0.36'
  gem 'rspec', '~> 3.4'
  gem 'rspec-rails', '~> 3.0'
end

任何想法将不胜感激。

编辑:以下是 --trace 结果:

$rake db:migrate --trace
** Invoke db:_dump (first_time)
** Execute db:_dump
** Invoke db:schema:dump (first_time)
** Invoke environment
** Invoke db:load_config
** Execute db:schema:dump

$rake db:rollback --trace
** Invoke db:rollback (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:rollback

最后一件事:我尝试了rake db:drop db:create,然后运行了第一次迁移(rake db:migrate VERSION=20151229013054)。即使如此,我也无法回滚该单一迁移。我也遇到同样的错误。

最佳答案

您已删除数据库并迁移它。您应该重新创建一个。

rake db:drop

rake db:create db:migrate

Please go through this answer

migration.rb 中的第 492 行,

 <tt>ActiveRecord::Migration::CommandRecorder</tt>.

所以你应该再次创建数据库。

关于mysql - Rake 不会回滚迁移,参数数量错误(1 代表 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35548270/

相关文章:

php - 如何获得 Asterisk 通话指标?

MySQL "unrecognized command line option ' -aes'“带有 ruby​​ 1.9.3-p125?

css - Ruby on Rails - Bootstrap/Form_for vs input_groups - 如何停止样式冲突

Ruby-on-Rails 从 Rake 任务创建记录

php - 从 MySQL 数据库中提取三个即将发生的事件

mysql - 意外锁定具有主键和唯一键的表

mysql时间比较-奇怪的结果

ruby-on-rails - 在 Ruby on Rails 教程第 8 章中,我收到 "Failure/Error: fill_in "密码",其中:user.password Capybara::ElementNotFound:"

ruby-on-rails - 抓取图像路径后构建 URL

javascript - 如何在 JavaScript 中将图像标签打印到 Rails 资源中?