2012-05-14 89 views
0

我已經運行「的Heroku DB:推」下載Heroku的數據庫更新時,它給我的錯誤:Heroku爲什麼不用'Heroku db:pull'下載數據庫更新?

水龍頭加載錯誤:沒有這樣的文件來加載--sqlite3
您可能需要安裝或更新水龍頭寶石使用db命令。
在大多數系統中,這將是:
sudo的創業板安裝水龍頭

我已經安裝了Heroku的2.25.0,水龍頭0.3.24和我改變了的Gemfile與替換寶石的sqlite3:

組:發展,:測試做
寶石 'sqlite3的'

組:生產做
寶石 'PG'

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

是否有可能?或者可以是什麼?

回答

1

首先,通過運行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 

(我相信這會工作,雖然我個人還沒有嘗試過,如有有一個問題作出迴應。)

最後,還有一些問題推拉數據庫,如果你正在運行紅寶石1.9.3在您的本地機器上 - 但只有當您在做db:pushIf you have problems with that here's a link to the solution.

+0

我已經ruby187。現在我試試! –

0

當您運行heroku命令時,它在本地開發機器上運行。所以development組你的Gemfile的使用:

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

,因爲它包含sqlite3,你需要的sqlite3寶石要在開發計算機上安裝。你運行bundle install來在本地安裝這個gem嗎?您可能需要在bundle exec調用中運行heroku命令以確保已加載寶石:

bundle exec heroku db:pull

最後,如果你想下載Heroku DB,你應該使用db:pull,而不是db:push

+0

yes是的,我已經運行'heroku db:pull',寫入錯誤,並且我已經在本地安裝了sqlite gem。 –

相關問題