我是heroku的新手,我制作了一个在heroku上运行的java应用程序。我现在想为应用程序创建一个更高级的数据库,并且我想上传数据库模式。从heroku下载的java示例应用程序显示该表由代码中的字符串文字构成。我想制作一个高级架构并上传。这是可能的还是我需要从代码创建表?Heroku中的数据库模式
感谢
我是heroku的新手,我制作了一个在heroku上运行的java应用程序。我现在想为应用程序创建一个更高级的数据库,并且我想上传数据库模式。从heroku下载的java示例应用程序显示该表由代码中的字符串文字构成。我想制作一个高级架构并上传。这是可能的还是我需要从代码创建表?Heroku中的数据库模式
感谢
一种常见的方法,以数据库迁移是运行它们作为部署过程是没有什么特定的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和一堆其他数据库。但是,根据您的要求,任何迁移工具都可以完成。
对于Java应用程序,还有其他一些可用的迁移工具:https://devcenter.heroku.com/articles/running-database-migrations-for-java-apps – codefinger
请链接到示例Java Heroku应用程序。 –