heroku rake db:迁移rake aborted!无法打开数据库

时间:2011-04-11 22:09:33

标签: ruby-on-rails postgresql heroku

我目前正在http://ruby.railstutorial.org/处完成Ruby on Rails教程,我正在尝试将demo_app数据库迁移到heroku。

heroku rake db:migrate
    rake aborted!
    unable to open database file

我已阅读其他stackoverflow帖子,有些人通过输入

来解决这个问题
group :production, :staging do
  gem "pg"
end

group :development, :test do  
  gem "sqlite3-ruby", "~> 1.3.0", :require => "sqlite3"
end
宝石文件中的

。我也将它输入到我的gemfile中,然后删除了我的旧gemfile.lock并重新编写了我的bundle install AND rake db:migrate命令。我仍然收到同样的错误。

我显然是ruby,rails和heroku的新手,但我明白问题似乎是我在本地使用sqlite和在生产中使用postgresql(在heroku上)。我现在必须将此postgresql安装到我的机器上,然后重新迁移数据库吗?如果我不能使用heroku,恐怕我将无法从教程中获得更多(或ruby on rails本身)。

3 个答案:

答案 0 :(得分:2)

杀了它!

我遇到了同样的问题但没有找到解决方案。我认为我们在这些教程中正在做的事情是导致我们破坏heroku生成的database.yml文件。

我最终摧毁了我的heroku app

heroku destroy

然后创建一个新副本,推送一个新副本,然后运行

heroku create
git push heroku master
heroku rakedb:migrate

这一次一切正常!只需确保您的gemfile中有pg gem用于生产

group :production do
  gem "pg"
end

并将config / database.yml添加到您的.gitignore文件中,以获得良好的衡量标准。

答案 1 :(得分:0)

或者如果它在本地工作正常做一个heroku db:push将你的本地sqlite DB神奇地放入Heroku的postgresql db中。

我总是在本地使用相同的数据库平台,所以我不会遇到任何差异(通常只在你开始做特定于数据库的SQL时),所以我也在本地运行Postgresql。

答案 2 :(得分:0)

有同样的问题......使用Heroku界面...运行: heroku rake db:migrate --trace

并发现问题与faker有关,而不是被发现...因为我们的Gemfile中的'faker'被加载到开发组中,所以我也将它加载到生产组中。 保存了Gemfile 捆绑安装 git add。 git commit -m“fixed faker” git push git heroku推 heroku rake db:migrate heroku rake db:填充

现在一切正常......问题,现在是如何处理我的生产网站上的100个用户? 至少我可以继续使用Hartl的教程!!