2017-04-07 54 views
0

我已將SpringBoot應用程序部署到Heroku。現在我想將我的本地PostgreSQL複製到Heroku。如何將我的本地PostgreSQL數據庫複製到Heroku for SpringBoot應用程序

我找到了devcenter.heroku.com的一些信息。 但是,我不太瞭解使用文件db.changelog-master.yaml

任何人都可以給我關於複製數據庫最簡單的解決方案的細節?

+0

此時我已經可以通過Java API和Flyway在Heroku的Postgres上創建表格。我正在使用CREATE語句的腳本。然而,一個大問題是如何插入現有的數據。當然,可以通過手動創建這樣的腳本幷包含所有數據,但我相信應該有更優雅的方式。 –

回答

1

創建本地postgres數據庫的有效轉儲並將其託管在公共可用的位置。現在您將能夠使用pg:backups:restore恢復整個數據集(模式和記錄),如here所示。唯一需要注意的是,目標數據庫必須完全清空,才能正常工作。您可以用heroku pg:reset清空Heroku postgres數據庫。

如果您不能採用上面列出的方法,那麼您可以直接從本地實例運行pg_restore,前提是您的本地版本的Postgres>> = Postgres的目標版本。這也適用於創建轉儲文件並且是必需的,因爲pg實用程序不保證是向前兼容的。 pg_restore的文檔是here

+0

謝謝。有沒有可能給我一個額外的建議。我將我的Postgres轉儲複製到Dropbox並授予它對All的訪問權限。然而Heroku說備份'...'沒有找到。公開舉辦轉儲的首選方式是什麼? –

+0

因此,現在我已將我的文件上傳到Amazon S3並授予公衆訪問權限。鏈接是https://s3.eu-west-2.amazonaws.com/kirillch/localizedb.sql。然而,Heroku再次表示備份'...'沒有找到。我使用以下命令:heroku pg:backups:restore'https://s3.eu-west-2.amazonaws.com/kirillch/localizedb.sql'DATABASE_URL -a my_app_name –

+0

當你捲曲時,你會得到什麼迴應文件? –

相關問題