gpt4 book ai didi

ruby-on-rails - rails 3.1 分贝 :test:prepare and "pending migrations" problem

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:41 26 4
gpt4 key购买 nike

最近切换到 Rails 3.1.0.rc4,我在运行 CI 构建时遇到了问题。它归结为以下简化情况:

-bash-3.2$ echo $RAILS_ENVtest-bash-3.2$ bundle exec rake db:drop db:create db:test:prepareYou 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:test:prepare 之前强制执行 db:migrate)否则无法运行,它不会使自己完全无用吗?

我想我可以将额外的 db:migrate 添加到我的 CI 构建过程中,但我想知道我做错了什么。

最佳答案

我相信 db:test:prepare 不打算在 TEST 环境中运行(否则你可以自己运行 db:schema:load)。通常你会在开发环境中运行 db:test:prepare。检查挂起的迁移非常有用(您将知道您的同事是否在您运行之前提交了一些新的迁移并失败了一堆测试)。由于运行测试会运行 db:test:prepare anyway,您应该很少需要手动运行它(当然不是为了您的 CI 构建)。省略对 db:test:prepare 的调用。

关于ruby-on-rails - rails 3.1 分贝 :test:prepare and "pending migrations" problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com