【问题标题】:heroku - I don't want to install postgres locally!heroku - 我不想在本地安装 postgres!
【发布时间】:2011-06-29 10:51:58
【问题描述】:

也许我在这里遗漏了一些明显的东西,但是,我正在开发一个现在我们想在 heroku 上运行的应用程序。我使用mysql开发。我没有,也不想在我的机器上安装 postgres。

我的 Gemfile 中有这个:

gem 'mysql2', '~>0.2.6', :group => :development
gem "pg", :group => :production

然而,当我在本地机器上进行捆绑安装时 - 正在开发中 - 我看到了:

Installing pg (0.11.0) with native extensions /Users/smyp/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/site_ruby/1.8/rubygems/installer.rb:533:in `build_extensions': ERROR:   Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/Users/smyp/.rvm/rubies/ree-1.8.7-2011.03/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***

这是我所期望的,因为我在本地没有 postgres……但是为什么要尝试安装它?!这不是违背了团体的目的吗?

【问题讨论】:

  • Postgres 有什么问题?我把它安装在我的机器上,很简单。
  • 这不是问题的重点(尽管我更喜欢 mysql,而且我的机器上不需要 2 个数据库)。
  • 我正在与一名设计师合作,让 Rails 应用程序在 sqlite3 上运行要简单得多。无需让她安装 pg 的麻烦(虽然它不是那么糟糕,它仍然是额外的命令行工作)

标签: ruby-on-rails heroku bundler


【解决方案1】:

使用bundle install --without production

【讨论】:

  • 谢谢 - 所以我确实遗漏了一些明显的东西!这样做对我来说似乎有点愚蠢,但这是生活。
  • 打包它的全部意义在于以最小的麻烦复制您的开发和生产环境。我建议你在你的开发机器上安装 postgres 以避免生产中的 sql 错误。如果您使用自制软件使用 osx,那完全是微不足道的。与大多数现代 linux 包管理同样如此。 Windows 我不知道。
  • 如果您不偏离轨道太远并且坚持使用 activerecord 查询通常很好,但是一旦您开始执行 findbysql,那么您需要使用您的应用程序将使用的 db 平台被部署在。此外,如果您使用一些 gem,则需要小心,我使用了acts_as_taggable gem 之一,在本地运行良好,但在 Heroku 上惨遭失败,因为其中包含特定于平台的 SQL。
  • 此外,除非您使用新的 Heroku Cedar 堆栈,否则您不需要在 gemfile 中指定 pg,因为 Heroku 会在您部署应用程序时为您注入。
  • 不只是find_by_sql会给你带来麻烦。 Postgres 进行区分大小写的查询; mysql 不区分大小写。 group by 查询的工作方式不同。等等。我发现在暂存或生产中发现这些差异远比在我的开发机器(Mac)上安装和使用 Postgres 更痛苦。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-28
  • 2012-09-14
  • 1970-01-01
  • 2016-10-31
相关资源
最近更新 更多