Что делает rake db:test: prepare на самом деле?



Я следую за обучающими видеороликами rails, и я не могу понять, что такое db:test:prepare команда на самом деле делает. Может ли кто-нибудь дать объяснение?

499   3  

3 ответов:

rake db: migrate выше запускает любые ожидающие миграции на среда разработки и обновления БД/схемы.рубидий. Повеса db: test: load воссоздает тестовую базу данных из текущей БД / схема.рубидий. При последующих попытках рекомендуется сначала запустить db: test: prepare, поскольку он сначала проверяет ожидающие миграции и предупреждает вам подобает.

-- http://guides.rubyonrails.org/testing.html

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

в частности, rake db:test:prepare следующее:

  • проверьте наличие отложенных миграций и,
  • загрузить тестовую схему

то есть, это будет выглядеть db/schema.rb файл, чтобы определить, если какие-либо миграции, которые существуют в вашем проекте, которые не были запущены. Предполагая, что нет никаких невыполненных миграций, он затем очистит базу данных и перезагрузит ее на основе содержимого .

rake db: test: prepare-это хорошее решение для проблем PG, таких как этой.

"PG:: UndefinedTable: ERROR: relation не существует "с правильным именем рельсов и соглашением", где я не мог просто выполнить rake db:migrate RAILS_ENV=production

когда, например, вы не можете создать тестовую базу данных для ошибка обсуждается здесь: "PG undefinedtable error relation users не существует"

все вокруг этой ошибки "PG:: UndefinedTable: ошибка: отношение xxxxx делает не существует"

Comments

    Ничего не найдено.