当前位置: 首页 > 知识库问答 >
问题:

为什么要求我运行“rake db:迁移RAILS_ENV=测试”?

卢毅
2023-03-14

在Rails 4.0.0.rc1、Ruby 2.0.0上,在我运行迁移之后,当我试图通过< code>rspec运行测试时,我看到以下错误:

/用户/peeja/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/activerecord-4.0.0.rc1/lib/active_record/migration。rb:376:在“check_pending!”中:正在等待迁移;运行“rake db:migrate RAILS_ENV=test”解决此问题。(ActiveRecord::PendingMigrationError)

这似乎不对。没有人迁移他们的测试数据库,是吗?他们db:test:prepareit,公平地说,我忘了这么做。因此,我运行rake-db:test:prepare并再次运行我的rspec命令……看到了相同的错误。

如果我真的将 db:migrate RAILS_ENV=test,错误实际上会消失。

发生什么事?这是Rails4中的新功能吗?

共有3个答案

董花蜂
2023-03-14

你也可以试试

rake db:migrate RAILS_ENV=test

它的工作原理是

db:test:prepare

做:)

岳谦
2023-03-14

看起来像rake test:准备工作,不确定db: test:准备现在做什么。

陶鸿畴
2023-03-14

从 Rails 4.1 开始,佣金 db:test:* 任务已弃用。相反,您的(测试|规范)_helper.rb 应包括:

ActiveRecord::Migration.maintain_test_schema!

这意味着您的测试数据库将在每次测试运行时获得正确的模式,无论您是否从Rake任务运行它们。

 类似资料:
  • 嗨, 我是Spring boot gradle项目的新手。我正在尝试用Spring boot应用程序运行flyway迁移。这就是我在gradle中设置依赖项的方式, 首先,我将依赖项添加为。这足以暴露一个终点。 然后我尝试以的方式添加flyway依赖项,它既没有抛出错误,也没有运行迁移脚本,直到我添加了依赖项。在查看了data-jpa jar的pom.xml之后,我确定了这个jar的hiberna

  • WCDB开源至今已两个月有余,我们在不断迭代功能、完善文档的同时,也与来自世界各地的开发者进行交流,帮助他们更快地了解、掌握WCDB。这其中,也不乏使用FMDB的开发者。他们正准备将项目的数据库模块改为WCDB。 对于一个已经上线运行的项目,数据库这类基础组件与业务的耦合通常较多,迁移有一定工作量的。因此,开发者通常会做很多预研,以确定是否进行迁移。 WCDB在Github的wiki上提供了专门的

  • 问题内容: 发生了最奇怪的事情,我的测试运行正常,但现在不再,我完全没有更改代码,这里是一个例外: 问题答案: 我看到您正在使用Eclipse,但您是否还在使用其他外部构建/测试工具,例如Ant或Maven?有时,在同时使用其他外部工具时,Eclipse可能会不同步。 如果使用外部工具,请执行清理生成的工件所需的所有操作(例如mvn clean)。然后刷新Eclipse项目并按照前面的建议进行干净

  • C++20概念的一个特点是,在某些情况下,您必须编写。例如,[expr.prim.req]/3中的这个示例:

  • 问题内容: 所以我正在通过docker-compose部署django,postgress和nginx容器,但我有一个似乎无法解决的问题。 为了解决我的Django应用程序中的以下错误,我知道我只需要运行Django迁移。 为了尝试运行迁移,我尝试了以下操作: 返回以下内容: 我只能从Django容器中成功迁移,例如: 尽管我已经解决了问题,但是我仍然不明白为什么通过docker-compose

  • 因此,我正在通过docker-comment部署django、post外层空间和nginx容器,我有一个似乎无法解决的问题。 为了解决Django应用程序中的以下错误,我知道我必须运行Django迁移。 在尝试运行迁移时,我尝试了: 返回以下内容: 我只能成功地从Django容器中迁移,例如: 虽然我已经解决了这个问题,但我仍然不明白为什么通过docker-composerun运行迁移实际上并没有