LoginSignup
14
5

More than 5 years have passed since last update.

ActiveRecord::StatementInvalid: Could not find table 'users'と怒られた時

Last updated at Posted at 2017-03-08

エラーが出てから、エラーがなくなるまでの経緯

・rails-tutorialの10章2.3を進めていた際に、以下のようなコマンドを使用すると上記のようなエラーがでた。

bundle exec rake test

エラー文を読むと、dbにusersテーブルがないよと言われているので、とりあえず、test環境でのdbのテーブルを確認してみた。

$RAILS_DEVtest rails dbconsole

実行結果は以下の様になった。

sqlite> .table
schema_migrations

確かにusersのテーブルが存在しない。よってtest環境でuserテーブルを作成するためにdbをresetする。

$ RAILS_ENV=test bundle exec rake db:migrate:reset                   
RubyDep: WARNING: Your Ruby is outdated/buggy.
RubyDep: WARNING: Your Ruby is: 2.3.0 (buggy). Recommendation: upgrade to 2.3.1.
RubyDep: WARNING: (To disable warnings, see:http://github.com/e2/ruby_dep/wiki/Disabling-warnings )
== 20170118071744 CreateUsers: migrating ======================================
-- create_table(:users)
   -> 0.0019s
== 20170118071744 CreateUsers: migrated (0.0020s) =============================

== 20170123093707 AddIndexToUsersEmail: migrating =============================
-- add_index(:users, :email, {:unique=>true})
   -> 0.0015s
== 20170123093707 AddIndexToUsersEmail: migrated (0.0017s) ====================

== 20170123095430 AddPasswordDigestToUsers: migrating =========================
-- add_column(:users, :password_digest, :string)
   -> 0.0008s
== 20170123095430 AddPasswordDigestToUsers: migrated (0.0009s) ================

== 20170208063309 AddRememberDigestToUsers: migrating =========================
-- add_column(:users, :remember_digest, :string)
   -> 0.0008s
== 20170208063309 AddRememberDigestToUsers: migrated (0.0009s) ================

== 20170216130826 AddAdminToUsers: migrating ==================================
-- add_column(:users, :admin, :boolean, {:default=>false})
   -> 0.0015s
== 20170216130826 AddAdminToUsers: migrated (0.0016s) =========================

== 20170217055846 AddActivationToUsers: migrating =============================
-- add_column(:users, :activation_digest, :string)
   -> 0.0009s
-- add_column(:users, :activated, :boolean, {:default=>false})
   -> 0.0006s
-- add_column(:users, :activated_at, :datetime)
   -> 0.0006s
== 20170217055846 AddActivationToUsers: migrated (0.0024s) ====================

== 20170225054528 AddResetToUsers: migrating ==================================
-- add_column(:users, :reset_digest, :stringreset_sent_at)
   -> 0.0009s
== 20170225054528 AddResetToUsers: migrated (0.0010s) =========================

テーブルができたので、もう一度テストを回してみると、以下の様な結果になった。

$ bundle exec rake test
# Running:

....................................

Finished in 1.803985s, 19.9558 runs/s, 88.6925 assertions/s.

36 runs, 160 assertions, 0 failures, 0 errors, 0 skips

エラー文を読むことは重要。

14
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
5