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