[英]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.