1

I was trying to fix a bad migration, I ended up jsut deleting it but I can't even reset my rails db now. I just get this error:

I was using this command to reset and re-run:

rake db:reset db:migrate

The error:

rake db:reset rake aborted! ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: simulations: SELECT "simulations".* FROM "simulations" ORDER BY "simulations"."id" DESC LIMIT 1

These are the migrations I have 1.

 class DeviseCreateUsers < ActiveRecord::Migration
  def change
    create_table(:users) do |t|
      ## Database authenticatable
      t.string :email,              :null => false, :default => "", limit: 96
      t.string :encrypted_password, :null => false, :default => "", limit: 60

      t.timestamps

      t.index :email, unique: true
    end
  end
end

2.

class CreateSimulations < ActiveRecord::Migration
  def change
    # Needs the hash column worked out before this is run 
    create_table :simulations do |t|
        t.integer :x_size
        t.integer :y_size
        t.string :verdict
        t.string :arrangement 
    end

    add_reference :simulations, :user, index: true    
  end
end

3.

    class AddOpinionToSimulation < ActiveRecord::Migration
      def change
        add_column :simulations, :opinion, :hash
      end
    end

Finally the bad one I was trying to run that started these problems (I have deleted the file to stop it from attempting to be migrated:

class RemoveVerdictFromSimulations < ActiveRecord::Migration
  def change
    remove_column :simulations, :verdict
  end
end

Any suggestions?

EDIT: Full trace:

Nathaniels-MacBook-Pro:clio-hiring-ui nathanielmots$ rake db:drop db:create db:migrate rake aborted! ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: simulations: SELECT "simulations".* FROM "simulations" ORDER BY "simulations"."id" DESC LIMIT 1 /usr/local/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in initialize' /usr/local/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in new' /usr/local/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in prepare' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:296:inblock in exec_query' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:473:in block in log' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/notifications/instrumenter.rb:20:in instrument' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:467:in log' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:293:inexec_query' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:347:in select' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:32:in select_all' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in select_all' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/querying.rb:39:in find_by_sql' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation.rb:638:in exec_queries' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation.rb:514:in load' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation.rb:243:in to_a' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation/finder_methods.rb:523:in find_last' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation/finder_methods.rb:172:in last' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/querying.rb:3:in last' /Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/spec/factories/simulations.rb:16:in block (2 levels) in <top (required)>' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:18:ininstance_eval' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:18:in factory' /Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/spec/factories/simulations.rb:15:in block in ' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:49:in instance_eval' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:49:inrun' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:7:in define' /Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/spec/factories/simulations.rb:14:in ' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in load' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:inblock in load' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in load_dependency' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:inload' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:20:in block (2 levels) in find_definitions' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:19:ineach' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:19:in block in find_definitions' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:15:ineach' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:15:in find_definitions' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl_rails-4.5.0/lib/factory_girl_rails/railtie.rb:21:in block in ' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:36:in call' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:36:in execute_hook' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:45:in block in run_load_hooks' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:44:in each' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:44:in run_load_hooks' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application/finisher.rb:62:in block in ' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:30:in instance_exec' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:30:in run' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:55:in block in run_initializers' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:54:in run_initializers' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:352:in initialize!' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/railtie.rb:194:in public_send' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/railtie.rb:194:in method_missing' /Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/config/environment.rb:5:in ' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in require' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:inblock in require' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in load_dependency' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:inrequire' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:328:in require_environment!' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:457:in block in run_tasks_blocks' SQLite3::SQLException: no such table: simulations /usr/local/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in initialize' /usr/local/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in new' /usr/local/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in prepare' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:296:inblock in exec_query' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:473:in block in log' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/notifications/instrumenter.rb:20:in instrument' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:467:in log' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:293:inexec_query' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:347:in select' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:32:in select_all' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in select_all' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/querying.rb:39:in find_by_sql' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation.rb:638:in exec_queries' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation.rb:514:in load' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation.rb:243:in to_a' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation/finder_methods.rb:523:in find_last' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/relation/finder_methods.rb:172:in last' /usr/local/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/querying.rb:3:in last' /Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/spec/factories/simulations.rb:16:in block (2 levels) in <top (required)>' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:18:ininstance_eval' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:18:in factory' /Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/spec/factories/simulations.rb:15:in block in ' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:49:in instance_eval' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:49:inrun' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:7:in define' /Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/spec/factories/simulations.rb:14:in ' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in load' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:inblock in load' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in load_dependency' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:inload' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:20:in block (2 levels) in find_definitions' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:19:ineach' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:19:in block in find_definitions' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:15:ineach' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl-4.5.0/lib/factory_girl/find_definitions.rb:15:in find_definitions' /usr/local/lib/ruby/gems/2.2.0/gems/factory_girl_rails-4.5.0/lib/factory_girl_rails/railtie.rb:21:in block in ' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:36:in call' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:36:in execute_hook' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:45:in block in run_load_hooks' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:44:in each' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/lazy_load_hooks.rb:44:in run_load_hooks' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application/finisher.rb:62:in block in ' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:30:in instance_exec' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:30:in run' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:55:in block in run_initializers' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:54:in run_initializers' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:352:in initialize!' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/railtie.rb:194:in public_send' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/railtie.rb:194:in method_missing' /Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/config/environment.rb:5:in ' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in require' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:inblock in require' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in load_dependency' /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:inrequire' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:328:in require_environment!' /usr/local/lib/ruby/gems/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:457:in block in run_tasks_blocks' Tasks: TOP => db:migrate => environment

Edit @Ian:

# == Schema Information
#
# Table name: simulations
#
#  id          :integer          not null, primary key
#  x_size      :integer
#  y_size      :integer
#  verdict     :string
#  arrangement :string
#  user_id     :integer
#  opinion     :hash
#

FactoryGirl.define do 
    factory :simulation do |f|
        f.id (Simulation.last.nil? ? 1 : Simulation.last.id + 1)
        f.x_size 3
        f.y_size 3
        f.user_id 1
    end 
end 
NNNNNNNNNNDelicious
  • 933
  • 3
  • 7
  • 19
  • What makes you think the last migration was "bad"? It should have separate up and down methods, the latter to recreate the column, but removing a column is a perfectly valid migration... – eirikir Aug 06 '15 at 20:58
  • I think it was bad because no 'my_sym' error you normally get when doing a migration with bad spelling as seen : http://stackoverflow.com/questions/4634557/on-migration-undefined-method-to-sym-for-nilnilclass – NNNNNNNNNNDelicious Aug 06 '15 at 21:04
  • 1
    Could there be something in an initialiser or something that is querying the simulations table? The rest of the backtrace may be informative. – Frederick Cheung Aug 06 '15 at 21:14
  • Why are factory girl factories being called? You've got a line in the stack trace that's really odd: `/Users/nathanielmots/Documents/Development/ThemisSolutions/clio-hiring-ui/spec/factories/simulations.rb:14` what's going on in line 14 of that file? – Ian Selby Aug 06 '15 at 21:27

1 Answers1

0

db:reset does a db:drop db:setup. db:setup does a schema:load, which is trying to read your db schema file, which probably has the issue. If you do rake db:drop db:create db:migrate, that should fix it.

More info in this answer: Difference between rake db:migrate db:reset and db:schema:load

Community
  • 1
  • 1
Ian Selby
  • 3,241
  • 1
  • 25
  • 18