See Railsforum post for more details but the reproduction is simple in rails 1.2.5:
rails testmigrations --database=sqlite3
cd testmigrations
ruby script/generate scaffold_resource person first_name:string last_name:string
ruby script/generate migration remove_last_name
Edit the migration:
class RemoveLastName < ActiveRecord::Migration
def self.up
remove_column "people", "last_name"
end
def self.down
add_column "people", "last_name", :string
end
end
rake db:migrate
no problem
rm db/development.sqlite3
ruby script/plugin install svn://errtheblog.com/svn/plugins/sexy_migrations
rake db:migrate --trace
kaboom:
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
== CreatePeople: migrating ====================================================
-- create_table(:people)
-> 0.0020s
== CreatePeople: migrated (0.0021s) ===========================================
== RemoveLastName: migrating ==================================================
-- remove_column("people", "last_name")
rake aborted!
wrong number of arguments (1 for 0)
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/sqlite_adapter.rb:296:in `columns'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/sqlite_adapter.rb:296:in `copy_table'
/Users/corey/Sites/testmigrations/vendor/plugins/sexy_migrations/lib/sexy_migrations.rb:65:in `instance_eval'
/Users/corey/Sites/testmigrations/vendor/plugins/sexy_migrations/lib/sexy_migrations.rb:65:in `create_table'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/sqlite_adapter.rb:295:in `copy_table'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/sqlite_adapter.rb:290:in `move_table'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/sqlite_adapter.rb:283:in `alter_table'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/abstract/database_statements.rb:59:in `transaction'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/sqlite_adapter.rb:282:in `alter_table'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/sqlite_adapter.rb:244:in `remove_column'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/migration.rb:275:in `send'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/migration.rb:275:in `method_missing'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/migration.rb:259:in `say_with_time'
/usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/migration.rb:259:in `say_with_time'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/migration.rb:273:in `method_missing'
./db/migrate//002_remove_last_name.rb:3:in `real_up'
...