Ответ 1
перед тестом rake db:test:prepare
Я пытаюсь запустить файл 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
Спасибо!
перед тестом rake db:test:prepare
Запустили ли вы rake db:migrate
?
Проверьте базу данных, если таблица существует. Если вы работаете с sqlite, вызовите sqlite3 db/development.sqlite3
, а затем выполните команду .schema
Вы можете вручную удалить базу данных db/test.sqlite3
, а затем повторно создать ее с помощью rake db:setup
.
Вы проверили свои светильники? Со мной случилось, что я изменил миграцию, но светильник остался тем же, поэтому вызвал ошибку.
Иногда это вызвано несколькими версиями активных камней. Удалите все драгоценные камни, кроме одного, которое использует ваше приложение. Я столкнулся с той же проблемой и сделал то же самое, что сказал. Это сработало.
У меня была такая же проблема, и я нашел решение в db/schema.rb:
# Could not dump table "xxx" because of following StandardError
# Unknown type 'bool' for column 'yyy'
возможно, это поможет!
"bool" работал везде, кроме этого schema.rb, но миграции, которые выполнялись правильно в режиме разработки.