Подтвердить что ты не робот

ActiveRecord:: StatementInvalid: не удалось найти таблицу

Я пытаюсь запустить файл users_test.rb, который имеет только

test "the truth" do
     assert true
   end

У меня есть таблица с симпатичными, но я получаю эту ошибку. Почему так?

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
➜  channelappnew  rake db:test:clone
➜  channelappnew  rake db:test:clone_structure
➜  channelappnew  rake db:migrate
➜  channelappnew  rake db:test:load
➜  channelappnew  rake db:test:prepare
➜  channelappnew  rake db:test:purge
➜  channelappnew  ruby -Itest test/unit/user_test.rb
Loaded suite test/unit/user_test
Started
E

Error:
test_the_truth(UserTest):
ActiveRecord::StatementInvalid: Could not find table 'likes'




Finished in 0.058371 seconds.

1 tests, 0 assertions, 0 failures, 1 errors, 0 pendings, 0 omissions, 0 notifications
0% passed

17.13 tests/s, 0.00 assertions/s

Спасибо!

4b9b3361

Ответ 1

перед тестом rake db:test:prepare

Ответ 2

Запустили ли вы rake db:migrate? Проверьте базу данных, если таблица существует. Если вы работаете с sqlite, вызовите sqlite3 db/development.sqlite3, а затем выполните команду .schema Вы можете вручную удалить базу данных db/test.sqlite3, а затем повторно создать ее с помощью rake db:setup.

Ответ 3

Вы проверили свои светильники? Со мной случилось, что я изменил миграцию, но светильник остался тем же, поэтому вызвал ошибку.

Ответ 4

Иногда это вызвано несколькими версиями активных камней. Удалите все драгоценные камни, кроме одного, которое использует ваше приложение. Я столкнулся с той же проблемой и сделал то же самое, что сказал. Это сработало.

Ответ 5

У меня была такая же проблема, и я нашел решение в db/schema.rb:

# Could not dump table "xxx" because of following StandardError
#   Unknown type 'bool' for column 'yyy'

возможно, это поможет!

"bool" работал везде, кроме этого schema.rb, но миграции, которые выполнялись правильно в режиме разработки.