0

我已经运行 'heroku db:push' 来下载 heroku db 更新,它显示错误:

taps load error: no such file to load --sqlite3
您可能需要安装或更新 taps gem 才能使用 db 命令。
在大多数系统上,这将是:
sudo gem install taps

我已经安装了 heroku 2.25.0,点击 0.3.24 并更改了 Gemfile,将 gem sqlite3 替换为:

组:开发,:测试做
gem'sqlite3'
结束
组:生产做
gem'pg'
结束

我认为这是 sqlite e postgresql 之间的兼容性数据库问题。

是否可以?或者可以是什么?

4

2 回答 2

1

首先,通过运行确保你的 gem 是最新的bundle install。如果一切都很好,那不会有什么坏处,所以你不妨确定一下。

之后,您应该能够db:pull使用以下代码段将副本拉取到本地计算机:

bundle exec heroku db:pull sqlite://local.db --app my_app

如果由于某种原因这不起作用,您可以在下拉数据库的同时更改您的 Gemfile——然后您可以根据需要将其更改回来。

group :development, :test do
  gem 'sqlite3'
  # add this next line and run 'bundle install' until you get db:pull to work
  gem 'pg'
end
group :production do
  gem 'pg'
end

(我相信这会起作用,虽然我个人没有尝试过。如果有问题,请回复。)

最后,如果您在本地计算机上运行 ruby​​ 1.9.3,那么在拉取和推送数据库时会出现一些问题——但只有在您使用db:push. 如果您对此有疑问,请点击此处的解决方案链接。

于 2012-05-14T13:05:31.500 回答
0

当您运行该heroku命令时,它会在您的开发机器上本地运行。所以development你的 Gemfile 的组被使用:

group :development, :test do
  gem 'sqlite3'
end

由于它包含sqlite3,因此您需要将sqlite3gem 安装在您的开发机器上。您是否已运行bundle install在本地安装此 gem?您可能需要heroku在调用中运行该命令bundle exec以确保加载 gem:

bundle exec heroku db:pull.

最后,如果你想下载 Heroku DB,你应该使用db:pull. 而不是db:push.

于 2012-05-14T12:58:52.097 回答