2017-02-17 114 views
0

昨天我上傳了一個帶有多個數據庫的Rails 5應用程序到Heroku。我有一個愛好 - 開發postgres插件。今天早上,我成功地使用根據Heroku文檔創建的pg_dump備份導入了我的7個Postgres數據庫。Heroku:如何阻止我的Postgres數據庫在幾分鐘後消失?

PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump 

heroku pg:backups:restore 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump' HEROKU_POSTGRESQL_COLOR_URL 

幾次我導入這些數據庫,因爲幾分鐘後它們消失。我運行了我的Heroku應用程序,第一個數據庫被成功訪問,但是當我試圖訪問第二個數據庫時,我收到了一個「關係」xxxx「不存在」。當我回到我的數據存儲時,數據庫消失了。當我第二次嘗試運行我的應用程序時,我在第一個表上創建了一個「關係」xxxx「不存在」,我上次運行我的應用程序時成功訪問了該表。

我在查看數據庫的數據存儲區時沒有看到任何錯誤。他們只是消失。我查了一下,看看我能用愛好開發的數據庫的數量是否有限制,但沒有看到。行數低於10,000。每次我導入我的pg_dump文件時,都會收到關於行數的警告電子郵件。

UPDATE 2/17/2017 10:42 AM central:目前爲止我發現的唯一一些帖子指出Heroku文件系統是短暫的,並且不會在dyno重新啓動之間持續存在。如果這是我的問題:

  1. 如何知道dynos何時重新啓動,如果我不重新啓動?當我的數據庫消失時,我沒有重新啓動我的應用程序。
  2. 如何使用Postgres插件永久存儲我的數據庫,還是必須將我的數據庫存儲在別處?當然附加組件有永久存儲數據庫的方法。
+0

我假設你使用Heroku PostgreSQL產品(而不是試圖自己設置它)。如果是這種情況,dyno文件系統的短暫性質不應該成爲您的擔憂。我建議你首先創建七個(空的)數據庫,看看它們是否消失。您可以使用'heroku插件創建單個數據庫:create heroku-postgresql:hobby-dev'。在每次調用之後,運行'heroku pg:wait'來等待數據庫的配置。如果數據庫不消失,請嘗試恢復備份。 –

+0

@GregNavis,是的,我是。我很習慣使用postgres.app來處理服務器級別的事情。現在我明白了Heroku PostgreSQL加載項的工作原理。我會這樣做併發布我的結果。 –

+0

@GregNavis請把你的評論作爲答案,我會檢查它。 –

回答

0

我假設你使用Heroku PostgreSQL產品(而不是試圖自己設置它)。如果是這種情況,dyno文件系統的短暫性質不應該成爲您的擔憂。

我建議您先創建七個(空的)數據庫,看看它們是否消失。您可以創建

heroku addons:create heroku-postgresql:hobby-dev 

一個單一的數據庫每次調用運行heroku pg:wait後等待,直到數據庫已提供。如果數據庫不消失,請嘗試恢復備份。

+0

我很習慣在服務器級別使用postgres我試圖將所有七個數據庫加載到一個附加組件中,並認爲附加組件是服務器。我創建了七個附加組件,並使用備份來恢復它們。他們工作得很好。謝謝! –

相關問題