2013-10-11 115 views
2

我能够推到heroku,现在我需要迁移数据库,但我得到的错误耙中止!运行heroku rake db时出现问题:migrate getting rake aborted!错误

我跑的命令Heroku的耙分贝:迁移和我的命令行的错误是

WARNING: `heroku rake` has been deprecated. Please use `heroku run rake` instead. 
Running `rake db:migrate` attached to terminal... up, run.6184 
rake aborted! 
uninitialized constant MiniTest::Rails 
/app/vendor/bundle/ruby/2.0.0/gems/minitest-4.7.5/lib/minitest/unit.rb:19:in `const_missing' 
/app/Rakefile:9:in `<top (required)>' 
(See full trace by running task with --trace) 

所以后来我跑命令

Running `rake db:migrate` attached to terminal... up, run.8495 
rake aborted! 
uninitialized constant MiniTest::Rails 
/app/vendor/bundle/ruby/2.0.0/gems/minitest-4.7.5/lib/minitest/unit.rb:19:in `const_missing' 
/app/Rakefile:9:in `<top (required)>' 
(See full trace by running task with --trace) 

,这里是我的Rakefile

#!/usr/bin/env rake 
# Add your own tasks in files placed in lib/tasks ending in .rake, 
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 

require File.expand_path('../config/application', __FILE__) 
require 'rake/dsl_definition' 
require 'rake' 

Portfolio::Application.load_tasks 

MiniTest::Rails::Testing.default_tasks << "features" 
副本

这里也是我的Gemfile的副本

group :development, :test do 
     gem "minitest-rails" 
     gem 'sqlite3' 
    end 

    group :production do 
     gem 'pg' 
     gem 'rails_12factor' 
    end 




    group :test do 
     gem "minitest-rails-capybara" 
    end 

    # Gems used only for assets and not required 
    # in production environments by default. 
    group :assets do 
     gem 'sass-rails', '~> 3.2.3' 
     gem 'coffee-rails', '~> 3.2.1' 

     # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
     # gem 'therubyracer', :platforms => :ruby 

     gem 'uglifier', '>= 1.0.3' 
    end 

    gem 'jquery-rails' 

    # To use ActiveModel has_secure_password 
    # gem 'bcrypt-ruby', '~> 3.0.0' 

    # To use Jbuilder templates for JSON 
    # gem 'jbuilder' 

    # Use unicorn as the app server 
    # gem 'unicorn' 

    # Deploy with Capistrano 
    # gem 'capistrano' 

    # To use debugger 
    # gem 'debugger' 

任何人都确定我的问题是什么,为什么我无法迁移为heroku?

回答

1

jeanaux和rb512绝对是在正确的轨道上,谢谢!

Heroku的使用Rakefile,你不能引用MiniTest:Rails模块,因为只被列入创业板在测试和开发群体Gemfile

我必须做什么的测试和开发环境是体检,让Rake再次工作。

if (Rails.env == "test" || Rails.env == "development") 
    MiniTest::Rails::Testing.default_tasks << "features" 
end 
+0

谢谢@Ivanoats你的文章工作很好! rb512和jeanaux你帮助与heroku,但它停止了在开发工作,现在它在两个工程! –

+0

你们,我错过了开发检查,赶上ivanoats – rb512

+1

另类:包括最小的铁轨宝石无处不在。查看宝石创建者@blowmage的评论:https://twitter.com/blowmage/status/387034628734738433 – brookr

2

你的gemfile文件只在测试组中有minitest,这很好,但是你的rake文件试图使用MiniTest类。试试这个:

if Rails.env == "test" 
    MiniTest::Rails::Testing.default_tasks << "features" 
end 
1

这里的原因:uninitialized constant MiniTest::Rails

你仅用于开发和测试环境指定MINITEST护栏。默认情况下,heroku在生产环境中运行应用程序,并且您没有用于制作产品的minitest-rails。

和条件,运行测试任务只用于测试:

MINITEST ::滑轨:: Testing.default_tasks < < “功能” 如果Rails.env == '测试'

相关问题