2

我在本地使用 sqlite 开发了一个应用程序,但现在想将其移至 Heroku,所以我将从现在开始使用 postgres。到目前为止,我不需要保留数据库,我只需要 Heroku 不要尝试安装 Sqlite,因为它会像这样爆炸:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
       /usr/local/bin/ruby extconf.rb
       checking for sqlite3.h... no
       sqlite3.h is missing. Try 'port install sqlite3 +universal'
       or 'yum install sqlite-devel' and check your shared library search path (the
       location where your sqlite3 shared library is located).
       *** extconf.rb failed ***
       Could not create Makefile due to some reason, probably lack of
       necessary libraries and/or headers.  Check the mkmf.log file for more
       details.  You may need configuration options.

我已经更改了我的 database.yml 文件并切换'gem' "sqlite3"'gem' "pg"了我的 Gemfile,但 heroku 仍然很生气。还有什么需要改变的,所以当我提交我的应用程序时它不会尝试安装 sqlite3?

4

1 回答 1

4

将 Gemfile 更改为使用 gem 'pg' 后,您需要重新运行该bundle命令。完成后,将 Gemfile 和 Gemfile.lock 提交到 git,然后将应用程序推送到 Heroku,它应该可以工作。

如果您不在本地运行 Postgres,那么您应该将 gem 'pg' 添加到您的 Gemfile 中的生产组,否则当您在本地运行 bundle 时,您会在尝试编译 gem 时遇到问题。您可以安全地将 gem 'sqlite' 移动到 Gemfile 中的开发组,以便在环境之间使用不同的数据库。请注意,在部署时在本地运行相同的数据库是最安全的。

于 2012-04-16T18:13:06.317 回答