我有一個包含多個表的項目,仍處於開發早期階段。我需要對遷移進行一些更改,並希望回滾才能正確執行此操作。這些都是微小的更改,我寧願直接編輯遷移,而不是創建更改遷移。Rake不會回滾遷移,參數數量錯誤(1代表0)
當我運行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
)。即使那樣我也無法回滾那一次遷移。我犯了同樣的錯誤。
這可能有幫助 - http://stackoverflow.com/questions/27139007/cant-migrate-database-after-scaffold-section-2-2-ruby-on-rails-tutorial-michae –
嘗試檢查跟蹤錯誤'rake db:migrate --trace' – usmanali
@usmanali,添加了追蹤結果。 – moveson