Недавний переход на Rails 3.1.0.rc4, и у меня возникают проблемы с запуском наших сборок CI.Это сводится к следующему упрощенному случаю:
-bash-3.2$ echo $RAILS_ENV
test
-bash-3.2$ bundle exec rake db:drop db:create db:test:prepare
You have 21 pending migrations:
20100628174219 InitialSchema
20100706175001 AddCompanyToClassifieds
20100720132917 CartItemActionMigration
20100811192506 AddJobTitleToDirectoryListings
...
Если я заменю эту команду на bundle exec rake db:drop db:create db:migrate db:test:prepare
, она будет работать нормально.
При копании глубже ядро db:test:prepare
задача имеет db:abort_if_pending_migrations
в качестве предварительного условия.
Теперь я просто упускаю что-то очевидное или это совершенно бессмысленно?Запуск db:test:prepare
(в стандартном случае) вызывает db:schema:load
, который выполняет schema.rb - весь смысл которого заключается в загрузке схемы без выполнения всех миграций.Не запустившись, если не выполнялись все миграции (таким образом, db:migrate
предшествует db:test:prepare
), разве это не делает себя совершенно бесполезным?
Полагаю, я могу добавить дополнительный db:migrate
к своемуПроцесс сборки CI, но я хотел бы знать, что я делаю неправильно.