2017-08-13 53 views
0

我是heroku的新手,我製作了一個在heroku上運行的java應用程序。我現在想爲應用程序創建一個更高級的數據庫,並且我想上傳數據庫模式。從heroku下載的java示例應用程序顯示該表由代碼中的字符串文字構成。我想製作一個高級架構並上傳。這是可能的還是我需要從代碼創建表?Heroku中的數據庫模式

感謝

+0

請鏈接到示例Java Heroku應用程序。 –

回答

2

一種常見的方法,以數據庫遷移是運行它們作爲部署過程是沒有什麼特定的Heroku的一部分 - 它只是所要求的應用程序代碼升級基礎設施的一部分。

作爲部署的一部分運行遷移將它與應用程序代碼很好地分開,因此您不必擔心將其包含到您的應用程序中。

樣品部署

爲了避免它的建議,開始與啓用應用程序的維護模式,在部署期間所接受的任何請求。

heroku maintenance:on --app myapp 

# push to Heroku which will trigger the buildpack to run 
git push [email protected]:myapp.git master 

# Use migration tool of your choice, this example is using migrate 
# https://github.com/mattes/migrate which supports a number of 
# different database systems. Make sure to use the DATABASE_URL that 
# is set in your application's environment variables. 
migrate -database $(heroku config:get DATABASE_URL --app myapp) \ 
    -path ./migrations up 

heroku maintenance:off --app myapp 

注意,上面的例子中不包括任何錯誤處理,比如如何進行,如果部署的Heroku失敗或如何從失敗的數據庫遷移恢復。此外,在遷移開始之前創建數據庫快照/備份可能是一個好主意。

我在示例中包含migrate,因爲它支持PostgreSQL,MySQL,SQLite和一堆其他數據庫。但是,根據您的要求,任何遷移工具都可以完成。

+1

對於Java應用程序,還有其他一些可用的遷移工具:https://devcenter.heroku.com/articles/running-database-migrations-for-java-apps – codefinger