簡體   English   中英

為什么Heroku不下載帶有“ Heroku db:pull”的數據庫更新?

[英]why Heroku does not download database updates with 'Heroku db: pull'?

我已經運行“ heroku db:push”來下載heroku db更新,它顯示了錯誤:

點擊加載錯誤:沒有要加載的此類文件--sqlite3
您可能需要安裝或更新taps gem才能使用db命令。
在大多數系統上,這將是:
sudo gem安裝水龍頭

我已經安裝了heroku 2.25.0,點擊了0.3.24,我更改了Gemfile,將gem sqlite3替換為:

小組:發展,:測試
gem'sqlite3'
結束
小組:生產做
寶石'pg'
結束

我認為這是sqlite e postgresql之間的數據庫兼容性問題。

可能嗎? 或者是什么?

首先,通過運行bundle install確保您的gem是最新的。 如果一切正常,它不會有任何傷害,因此您可以確保。

之后,您應該能夠使用db:pull通過以下代碼片段將副本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時才如此。 如果您對此有疑問,請訪問以下鏈接。

當您運行heroku命令時,它在開發計算機上本地運行。 因此,使用了Gemfile的development組:

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

由於它包含sqlite3 ,因此您需要在開發機器上安裝sqlite3 gem。 您是否運行過bundle install在本地安裝此gem? 您可能需要在bundle exec調用中運行heroku命令,以確保已加載gem:

bundle exec heroku db:pull

最后,如果要下載Heroku DB,則應使用db:pull而不是db:push

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM