【问题标题】:rake test:prepare doesn't create test databaserake test:prepare 不创建测试数据库
【发布时间】:2016-07-14 00:18:58
【问题描述】:

我在 Rails 3.2.9 上,当我尝试运行以下命令时

rake db:drop db:create db:schema:load db:migrate test:prepare
rspec spec/

rspec 命令抛出错误

Mysql2::Error: Table 'app_test.articles' doesn't exist: SHOW FULL FIELDS FROM `articles` (ActiveRecord::StatementInvalid)

但是当我单独运行test:prepare 命令时,它可以工作:

rake db:drop db:create db:schema:load db:migrate
rake test:prepare
rspec spec/

为什么在同一个 rake 命令中准备测试数据库不起作用?

【问题讨论】:

    标签: mysql ruby-on-rails ruby rspec rake


    【解决方案1】:

    您需要提供环境信息。喜欢RAILS_ENV=test。 请试试这个:

    rake db:drop db:create db:test:prepare
    

    【讨论】:

    • 这正是test:prepare 的目的
    • 那就试试rake db:drop db:create db:schema:load db:migrate db:test:prepare
    • 结果一样,test:preparedb:test:prepare没有区别
    • 具体来说,rake db:test:prepare 将执行以下操作:1. 检查挂起的迁移,2. 并加载测试架构
    • 您也可以添加rake db:drop db:setup RAILS_ENV=test。它将删除数据库然后创建数据库并迁移数据库。
    猜你喜欢
    • 1970-01-01
    • 2013-05-13
    • 2023-01-28
    • 2016-06-15
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2012-04-13
    相关资源
    最近更新 更多