【问题标题】:Problem in migrating a database to Heroku将数据库迁移到 Heroku 的问题
【发布时间】:2011-10-19 18:19:41
【问题描述】:

当尝试将数据库迁移到Heroku 时,我得到以下信息(前提是我使用的是gem 'sqlite3', '1.3.3'

$ heroku rake db:migrate
(in /app)
rake aborted!
uninitialized constant Rake::DSL
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in `<class:Ta
skLib>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in `<module:R
ake>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in `<top (req
uired)>'
/app/.bundle/gems/ruby/1.9.1/gems/rdoc-3.9.1/lib/rdoc/task.rb:37:in `require'
/app/.bundle/gems/ruby/1.9.1/gems/rdoc-3.9.1/lib/rdoc/task.rb:37:in `<top (requi
red)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks/documentation.r
ake:2:in `require'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks/documentation.r
ake:2:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:15:in `load'

/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:15:in `block
 in <top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:6:in `each'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:6:in `<top (
required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:215:in
 `require'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:215:in
 `initialize_tasks'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:139:in
 `load_tasks'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:77:in
`method_missing'
/app/Rakefile:7:in `<top (required)>'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/ruby1.9.2/bin/rake:31:in `<main>'

我该如何解决这个问题?

谢谢。

【问题讨论】:

标签: database deployment heroku rake migrate


【解决方案1】:

Rake aborted! Uninitialized constant Rake::DSL on Heroku

I have a blog post about this here。有两种方法可以做到这一点:

仅使用旧版本的 rake:

通过$ gem list 查看您当前的 Rake 版本。查看您拥有的 rake 版本并将其全部删除,0.8.7 除外。您可以使用gem uninstall rake -v=0.9.1 或您需要删除的任何版本来删除 gem。

或者只是在你的 rake 文件中添加一个衬里:

除非您必须使用旧版本的 Rake,否则将这行require 'rake/dsl_definition' 添加到 Rails 的应用程序 Rakefile 会更容易。

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

【讨论】:

    猜你喜欢
    • 2019-04-16
    • 2017-05-24
    • 2021-10-16
    • 2011-07-19
    • 2014-10-16
    • 2022-07-25
    • 1970-01-01
    • 2023-03-05
    • 2015-04-23
    相关资源
    最近更新 更多