Ruby rails heroku我已经将pg添加到gemfile但它说它没有

时间:2015-10-13 23:15:27

标签: ruby-on-rails heroku

我正在尝试将heroku掌握我的应用程序为heroku生成,尽管我的gemfile看起来像这样:

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug'

  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'

  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
end

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

我做了:

bundle install --without production

git commit -a -m

最后

git push heroku master

它将拒绝传输说明pg未安装在gemfile中

 Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

所以,当我做heroku open

我明白了

应用程序中发生错误,无法提供您的页面。请稍后重试。 如果您是应用程序所有者,请检查日志以获取详细信息。

我不知道这两个错误是否相关。 Heroku上传了我的id_rsa.pub密钥,我通过命令行通过电子邮件和密码登录。

1 个答案:

答案 0 :(得分:-1)

所以这就是我认为错误的地方,万一有人经历了同样的错误。

1)当我尝试通过

创建一个ssh密钥时
cat ~/.ssh/id_rsa.pub

尽管我的linux上默认安装了ssh,但该命令最初没有工作,所以我最终通过ssh keygene命令生成了。我复制了它并将它(公共的)粘贴到我的bitbucket ssh密钥中,但是生成的私有密钥与原始密钥不匹配。而错误是由于私人本地和公共之间的密钥不匹配。

我想我也搞砸了,因为我正在使用两台不同的计算机,如果你这样做,你必须继续使用同一帐户的另一种不同密钥模式等。 我从头开始重新启动,删除了我的git目录,删除了bitbucket上的存储库和heroku的应用程序并再次尝试了该命令。

由于某种原因,这次命令工作(不,它没有第一次拼写错误),所以现在键的同步是正确的。这次我将其复制并直接粘贴在bitbucket的ssh键中。

然后我再次通过相同的东西:

这遵循Michael Hartl(The Ruby on Rails Tutorial)的伟大着作中的指示

cat ~/.ssh/id_rsa.pub
$ git remote add origin git@bitbucket.org:<username>/hello_app.git
$ git push -u origin --all # pushes up the repo and its refs for the first time

$ git remote add origin git@bitbucket.org:myname/hello_app.git

现在为gemfile

group :production do
  gem 'pg',             '0.18.3'
  gem 'rails_12factor', '0.0.2'
end

$ bundle install --without production
好奇地,现在它没有抱怨pg而是关于mysql2,所以这真的无关紧要

$ git commit -a -m "Update Gemfile.lock for Heroku"
$ heroku version
$ heroku login
$ heroku keys:add

(这次正确添加或提取了密钥)

$ heroku create
Creating damp-fortress-5769... done, stack is cedar
http://damp-fortress-5769.herokuapp.com/ | git@heroku.com:damp-fortress-5769.git
Git remote heroku added

$ git push heroku master

heroku open