Heroku中的数据库模式

时间:2017-08-13 14:57:32

标签: java heroku

我是heroku的新手,我已经创建了一个在heroku运行的java应用程序。我现在想为应用程序创建一个更高级的数据库,我想上传数据库模式。我从heroku下载的java示例应用程序显示了由代码中的字符串文字构成的表。我想制作一个高级架构并上传。这是可能的还是我需要从代码中创建表?

由于

1 个答案:

答案 0 :(得分:2)

数据库迁移的一种常见方法是将它们作为部署过程的一部分运行,这与Heroku无关 - 它只是应用程序代码所需的升级基础架构的一部分。

在部署过程中运行迁移会将其与应用程序代码完全分开,因此您不必担心将其包含在应用程序中。

示例部署

为避免在部署期间接受任何请求,建议您先启用应用程序的维护模式。

heroku maintenance:on --app myapp

# push to Heroku which will trigger the buildpack to run
git push git@heroku.com: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和一堆其他数据库。但是,根据您的要求,任何迁移工具都可以。