【问题标题】:Doing a "heroku db:migrate" and getting the error "Please install the postgresql adapter"执行“heroku db:migrate”并收到错误“请安装 postgresql 适配器”
【发布时间】:2011-12-11 21:53:57
【问题描述】:

我正在尝试使用我的 mySQL 数据库执行 heroku db:migrate,但我收到了错误/建议:

请安装 postgresql 适配器:gem install activerecord-postgresql-adapter(pg 不是捆绑包的一部分。将其添加到 Gemfile。)

我尝试将“gem install activerecord-postgresql-adapter”放在我的 gem 文件中,但是当我运行 bundle install 时,我得到:

charlotte-dator:showwwdown holgersindbaek$ 捆绑安装 /Users/holgersindbaek/Projekter/Showwwdown/showwwdown/Gemfile:34:in evaluate': undefined local variable or methodactiverecord' for # (NameError) 来自 /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/definition.rb:17:in build' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler.rb:138:indefinition' 来自 /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/cli.rb:219:in install' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/vendor/thor/task.rb:22:insend' 来自 /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/vendor/thor/task.rb:22:in run' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/vendor/thor/invocation.rb:118:ininvoke_task' 来自 /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/vendor/thor.rb:263:in dispatch' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/vendor/thor/base.rb:386:instart' 来自 /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/bin/bundle:13 来自 /usr/bin/bundle:19:in `load' 来自 /usr/bin/bundle:19

希望您能提供帮助。谢谢!

【问题讨论】:

  • 谢谢。那里似乎有一些帮助。在我将 gem 'pg' 添加到我的 gemfile 并运行 bundle install 后,我忘记提交并推送到 heroku

标签: ruby-on-rails ruby database heroku migrate


【解决方案1】:

将以下行添加到您的 gemfile(而不是):

gem 'pg'

如果你在开发中不使用 Postgres,你可以这样做:

gem 'pg', :group => :production

【讨论】:

  • 我在开发中使用 mySQL,即使我将“gem 'pg', :group => :production” 放在 gem 文件中,我仍然得到:“rake aborted!请安装postgresql 适配器:gem install activerecord-postgresql-adapter(pg 不是捆绑包的一部分。将其添加到 Gemfile。)"
  • 您还必须在对Gemfile 进行任何更改后重新捆绑。您可以通过运行命令bundle 重新捆绑。重新捆绑后,将Gemfile.lock 添加到 git 并重新部署到 Heroku。
  • 它在运行 bundle 时给了我同样的错误,而不是 bundle install。
  • 对不起.. 一开始没听懂你的意思。我应该提交文件并将其推送到 heroku,然后运行 ​​db:migrate。在以下位置找到帮助:stackoverflow.com/questions/7822896/…
  • bundlebundle install 相同。更新 Gemfile 后,您应该始终运行 bundlebundle update [gemname]。如果您希望 Heroku 拥有您对 Gemfile 所做的更改,是的,您需要提交并推送它们。
【解决方案2】:

确保你推送到 heroku 的分支是 master 分支。

在我的情况下,我已经尝试了以上所有方法,但没有成功。当我推送我的 git 存储库时,我犯了另一个错误,我没有推送 master 分支,而是另一个“命名”分支。因此,即使在更新 gem 文件等之后,我的更改也没有得到反映。

【讨论】:

  • 就是这样。在一个命名的分支上浪费了 2 个小时。谢谢。
猜你喜欢
  • 2013-06-03
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
相关资源
最近更新 更多