2017-08-13 32 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