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

Спасибо!


person Ava    schedule 01.10.2011    source источник


Ответы (5)


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

person Hassan    schedule 09.05.2012

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

person jbasko    schedule 01.10.2011
comment
У меня есть это в моей базе данных.yml test: adapter: sqlite3 database: db/test. database: ":memory:" pool: 5 timeout: 5000 - person Ava; 01.10.2011
comment
Это показало мне это: ➜ channelappnew rake db:migrate ➜ channelappnew rake db:setup db/development.sqlite3 already exists -- create_table("likes", {:force=>true}) -> 0.0379s -- create_table("users", {:force=>true}) -> 0.0165s -- initialize_schema_migrations_table() -> 0.0003s -- assume_migrated_upto_version(20110929162245, ➜ channelappnew ruby -Itest test/unit/user_test.rb Loaded suite test/unit/user_test Error: test_the_truth(UserTest): ActiveRecord::StatementInvalid: Could not find table 'likes' - person Ava; 01.10.2011
comment
Пока не важно, что у вас есть в database.yml. Очевидно, вы имеете в виду несуществующую таблицу. Таблицы создаются миграциями. Проверьте папку db/migrations и посмотрите, есть ли у вас код, который когда-либо создает таблицу «Нравится». - person jbasko; 01.10.2011
comment
Я изменил database: db/test. на database: db/test.sqlite3, но все та же ошибка. - person Ava; 01.10.2011
comment
Вставьте свои приборы для этой таблицы. Может те помогут. - person jbasko; 01.10.2011
comment
давайте продолжим это обсуждение в чате - person jbasko; 01.10.2011

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

person ryudice    schedule 01.10.2011
comment
Да, я проверил все возможные проблемы, которые были у людей. Мои приборы вроде в порядке. - person Ava; 01.10.2011

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

person narasappa    schedule 19.11.2012

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

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

может это поможет!

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

person randomcontrol    schedule 14.02.2012