【发布时间】:2011-07-14 12:49:49
【问题描述】:
最近切换到 Rails 3.1.0.rc4,我无法让我们的 CI 构建运行。归结为以下简化案例:
-bash-3.2$ 回声 $RAILS_ENV 测试 -bash-3.2$ bundle exec rake db:drop db:create db:test:prepare 您有 21 个待处理的迁移: 20100628174219 初始架构 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:test:prepare 之前强制使用 db:migrate),它不会使自己完全无用吗?
我想我可以在我的 CI 构建过程中添加额外的 db:migrate,但我想知道我做错了什么。
【问题讨论】:
标签: ruby-on-rails ruby unit-testing migration