12

我在将数据从我的开发数据库推送到 Heroku 时遇到问题。我决定切换到 PostgreSQL 作为我的开发数据库,​​并更新了 database.yml 并从 gemfiles 中删除了 sqlite gem。

该应用程序在 PostgreSQL 上运行良好,但是当我尝试运行命令时:

heroku db:push

我得到一个令人费解的 SQLite 错误,因为我的项目中没有对 sqlite 的引用:

 !    Taps Load Error: cannot load such file -- sqlite3
 !    You may need to install or update the taps gem to use db commands.
 !    On most systems this will be:
 !    
 !    sudo gem install taps

这是我的 database.yml 文件:

development:
  adapter: postgresql
  encoding: unicode
  database: xxxx
  pool: 5
  timeout: 5000
  username: xxxx
  password: xxxx

test:
  adapter: postgresql
  encoding: unicode
  database: test
  pool: 5
  timeout: 5000
  username: xx
  password: xx

production:
  adapter: postgresql
  encoding: unicode
  database: test
  pool: 5
  timeout: 5000

我正在使用 RVM,并且没有任何运气就创建了一个新的 gemset。

我什至试过这个,但得到了同样的 SQLite 错误:

heroku db:push postgres://xx:xx@localhost/xx

 !    Taps Load Error: cannot load such file -- sqlite3
 !    You may need to install or update the taps gem to use db commands.
 !    On most systems this will be:
 !    
 !    sudo gem install taps

我还运行了捆绑安装和捆绑更新。

约翰

4

5 回答 5

10

我遇到了同样的问题,并通过将水龙头移动到我的 gemfile 中的开发组来解决它——水龙头需要 sqlite,这就是导致问题的原因。

group :development do
  gem 'taps', :require => false # has an sqlite dependency, which heroku hates
end
于 2012-03-04T19:40:08.807 回答
8

解决方案是不仅将tapsgem 添加到组中,还将sqlite3gem 添加到:development组中。如果您已经在开发中使用sqlite3,那么只需添加tapsgem 就足够了。但我正在使用mysql我的开发,所以为了解决这个问题,我必须同时添加两者。

group :development do
  gem 'taps'
  gem 'sqlite3'
end
于 2012-09-25T10:38:07.513 回答
4
gem install sqlite3

为我解决了。

于 2013-06-24T23:05:21.880 回答
0

在我的 debian wheezy 上,我需要安装:

aptitude install libsqlite3-dev
于 2012-10-17T15:09:08.233 回答
0
gem install sqlite3 

是你所需要的全部。错误来自本地,而不是来自 Heroku

于 2013-07-06T18:39:37.357 回答