昨天我上傳了一個帶有多個數據庫的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重新啓動之間持續存在。如果這是我的問題:
- 如何知道dynos何時重新啓動,如果我不重新啓動?當我的數據庫消失時,我沒有重新啓動我的應用程序。
- 如何使用Postgres插件永久存儲我的數據庫,還是必須將我的數據庫存儲在別處?當然附加組件有永久存儲數據庫的方法。
我假設你使用Heroku PostgreSQL產品(而不是試圖自己設置它)。如果是這種情況,dyno文件系統的短暫性質不應該成爲您的擔憂。我建議你首先創建七個(空的)數據庫,看看它們是否消失。您可以使用'heroku插件創建單個數據庫:create heroku-postgresql:hobby-dev'。在每次調用之後,運行'heroku pg:wait'來等待數據庫的配置。如果數據庫不消失,請嘗試恢復備份。 –
@GregNavis,是的,我是。我很習慣使用postgres.app來處理服務器級別的事情。現在我明白了Heroku PostgreSQL加載項的工作原理。我會這樣做併發布我的結果。 –
@GregNavis請把你的評論作爲答案,我會檢查它。 –