#139 ✓hold
Corey

remove_column fails with sqlite3

Reported by Corey | October 19th, 2007 @ 07:43 AM

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'

...

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

Shared Ticket Bins

People watching this ticket

Pages