Відповіді:
Rake db: migrate вище виконує будь-які очікувані міграції в середовищі розробки та оновлює db / schema.rb. Rake db: test: load відтворює тестову базу даних з поточного db / schema.rb. Після подальших спроб рекомендується спочатку запустити db: test: підготуватися, оскільки він спочатку перевіряє чинні міграції та попереджає вас належним чином.
- http://guides.rubyonrails.org/testing.html
В основному він обробляє клонування бази даних, тому вам не доведеться запускати міграції проти тесту, щоб оновити тестову базу даних.
Зокрема, rake db:test:prepare
буде зроблено наступне:
Тобто, він перегляне ваш db/schema.rb
файл, щоб визначити, чи існували якісь міграції у вашому проекті, які не були запущені. Якщо припустимо, що немає міграцій, то вона буде порожньою базою даних та перезавантажена на основі вмісту db/schema.rb
файлу.
граблі БД: Тест: підготовка є хорошим рішенням для PG питань , як це .
"PG :: UndefinedTable: ПОМИЛКА: відношення не існує" з правильним іменем і конвенцією Rails ", де я не міг просто виконати rake db:migrate RAILS_ENV=production
Якщо, наприклад, ви не можете створити тестову базу даних про помилку, про яку йдеться тут : "PG невизначених відношень помилок користувачів не існує"
Усе навколо цієї помилки "PG :: UndefinedTable: ПОМИЛКА: відношення xxxxx не існує"
rake db:test:prepare
зараз застаріло.