【问题标题】:Heroku rake db:migrate fails - Missing tasks/railsHeroku rake db:migrate 失败 - 缺少任务/rails
【发布时间】:2011-04-26 13:55:10
【问题描述】:

我只是潜入 Heroku 并遇到了一些障碍。每当我尝试创建我的数据库时,我都会收到以下错误。

$ heroku rake db:migrate
 rake aborted!
 no such file to load -- tasks/rails
 /disk1/home/slugs/274236_54c3556_0822-55414a07-d565-459a-9412-67cc0e995790/mnt/Rakefile:10:in `require'
 (See full trace by running task with --trace)
 (in /disk1/home/slugs/274236_54c3556_0822-55414a07-d565-459a-9412-67cc0e995790/mnt)

我对错误消息试图告诉我的确切内容有点困惑。我可以验证我的 lib/tasks 文件夹中不存在名为“rails”或“rails.rb”的文件。但为了理智起见,我还使用脚手架在干净的脏中创建了一个新的 RoR 应用程序,并验证它也不存在。

在我将它升级到 Rails 3 之前,这个应用程序之前在 Rails 2 下运行。所以当我升级时,我很可能会暴露一些东西。

另外,如果有帮助,这里是与上面启用跟踪的相同命令:

$ heroku rake db:migrate --trace
  rake aborted!
  no such file to load -- tasks/rails
  /disk1/home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/Rakefile:10:in `require'
  /disk1/home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/Rakefile:10
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `load'
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile'
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile'
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in `run'
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
  /home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt/.bundle/gems/ruby/1.8/gems/rake-0.8.7/bin/rake:31
  /usr/ruby1.8.7/bin/rake:19:in `load'
  /usr/ruby1.8.7/bin/rake:19
  (in /disk1/home/slugs/274236_54c3556_0822-d0995817-4e57-4415-9e95-18e86d90348d/mnt)

任何有关调查方向的线索都将受到高度赞赏。

谢谢!

编辑

我开始认为 Heroku 是一条红鲱鱼。我可以尝试在本地运行 db:migrate 并产生相同的错误(显然是使用本地路径而不是 Heroku 的路径)。

这是一个基本的应用程序,没有特殊的 gem 依赖项。这是我的 Gemfile:

source :gemcutter

gem 'mysql', '2.7'
gem 'rails', '3.0.1'
#gem 'rfacebook'
gem 'sqlite3-ruby', :require => 'sqlite3'

这也是我的database.yml:

# SQLite version 3.x
#   gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

【问题讨论】:

  • 你在 rails 3 使用什么 heroku 堆栈。常规 Heroku 堆栈不支持 Rails 3。试试 Bamboo 堆栈
  • @Rishav,谢谢。想把它作为答案发布,这样我就可以接受它作为答案,如果结果证明它可以解决我的问题?
  • 啊……没关系。竹子没有解决它。我可能在 Rails 3 升级中搞砸了。
  • 您可以发布您的 Gemfile 吗? .至少我们知道它不是 heroku 堆栈
  • 我开始同意你的观点,Heroku 更像是一条红鲱鱼。 Gemfile 和 database.yml 即将推出。

标签: ruby-on-rails ruby rake heroku


【解决方案1】:

看起来您的Rakefile 中可能有一些 Rails 2 工件或其他东西。我会从那里开始,也许比较默认的 Rails 2 和 Rails 3 Rakefiles。

【讨论】:

  • 就是这样!显然,当我升级到 Rails 3 时,我忽略了 Rakefile。
猜你喜欢
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-19
  • 2020-01-26
  • 1970-01-01
相关资源
最近更新 更多