I've written a simple Rails migration that adds an index to an existing Postgres table:
class AddIndexToEvents < ActiveRecord::Migration > def change > add_index :sf_events, :account_id > end > end However, when I run the migration, it fails due to a syntax error on the CREATE INDEX line. I'm expecting some SQL like this to be generated: CREATE INDEX index_sf_events_on_account_id ON sf_events (account_id); But instead I get something like this: CREATE INDEX index_sf_events_on_account_id ON sf_events ( ); The migration works fine on my friend's Mac, but it fails on my Linux box. It seems like I may have the wrong/outdated packages. I'm running Ubuntu 12.10 and have these packages installed: libpq-dev, libpq5, postgresql, postgresql-9.1, postgresql-client-9.1, postgresql-client-common, postgresql-common, postgresql-contrib, postgresql-contrib-9.1. Here's the full error message: == AddIndexToEvents: migrating > =============================================== > rake aborted! > An error has occurred, this and all later migrations canceled: > PG::Error: ERROR: syntax error at or near ")" > LINE 1: ...ATE INDEX "index_sf_events_on_account_id" ON "sf_events"( ) > ^ > : CREATE INDEX "index_sf_events_on_account_id" ON "sf_events"( > )/home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:650:in > > `async_exec' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:650:in > > `block in execute' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:280:in > > `block in log' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activesupport-3.2.13/lib/active_support/notifications/instrumenter.rb:20:in > > `instrument' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:275:in > > `log' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:649:in > > `execute' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/postgres_ext-0.4.0/lib/postgres_ext/active_record/connection_adapters/postgres_adapter.rb:326:in > > `add_index' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/pg_power-1.5.0/lib/pg_power/create_index_concurrently.rb:82:in > > `add_index' > /home/ben/git/workbench-api/db/migrate/20130723195953_add_index_to_events.rb:3:in > > `change' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:407:in > > `block (2 levels) in migrate' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:407:in > > `block in migrate' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:129:in > > `with_connection' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:389:in > > `migrate' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:528:in > > `migrate' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:720:in > > `block (2 levels) in migrate' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:775:in > > `call' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:775:in > > `block in ddl_transaction' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in > > `transaction' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/transactions.rb:208:in > > `transaction' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:775:in > > `ddl_transaction' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/pg_power-1.5.0/lib/pg_power/create_index_concurrently.rb:201:in > > `ddl_transaction_with_postponed_queries' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:719:in > > `block in migrate' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:700:in > > `each' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:700:in > > `migrate' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:570:in > > `up' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/migration.rb:551:in > > `migrate' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/gems/activerecord-3.2.13/lib/active_record/railties/databases.rake:193:in > > `block (2 levels) in <top (required)>' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/task.rb:246:in > > `call' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/task.rb:246:in > > `block in execute' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/task.rb:241:in > > `each' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/task.rb:241:in > > `execute' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/task.rb:184:in > > `block in invoke_with_call_chain' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/task.rb:177:in > > `invoke_with_call_chain' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/task.rb:170:in > > `invoke' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:143:in > > `invoke_task' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:101:in > > `block (2 levels) in top_level' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:101:in > > `each' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:101:in > > `block in top_level' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:110:in > > `run_with_threads' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:95:in > > `top_level' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:73:in > > `block in run' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:160:in > > `standard_exception_handling' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@global/gems/rake-10.0.4/lib/rake/application.rb:70:in > > `run' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/bin/ruby_noexec_wrapper:14:in > > `eval' > /home/ben/.rvm/gems/ruby-1.9.3-p392-railsexpress@workbench-api/bin/ruby_noexec_wrapper:14:in > > `<main>' > Tasks: TOP => db:migrate > (See full trace by running task with --trace) -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/dc2d12bc-e73a-498f-a763-2c7752aa8fd3%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.