如何为服务器端应用程序初始化SQL数据库和表?

问题描述:

我正在将SQL数据库(PostgreSQL)整合到我的第一个Java后端系统中。如何为服务器端应用程序初始化SQL数据库和表?

我的困境,现在是应该的应用程序本身创建数据库和表,或者它应该只是假设,与表的初始化所需的数据库可用?

如果应用程序不应该由自己管理数据库,那么什么是再现开发商的机器(我希望能够在本地运行与真正的数据库集成测试)的数据库的最佳方法?

+0

如果应用程序没有创建/ init数据库,那么其他人将不得不这样做。如果你让你的应用程序担心这一点,那么你可以尝试一致的行为。 –

+1

查看[liquibase](http://www.liquibase.org/)或[FlyWay](https://flywaydb.org/) – Max

+0

通常,您不会让应用程序管理数据库。如果你决定改用psotgres,减少返工。最好简单地为其他人提供一个SQL脚本来运行。更好 - 给码头/流浪者的图像。其他人甚至不用担心安装postgres。 – Vineet

我最终在他的评论中建议使用FlyWay作为@Max。

设置非常简单直观。我暂时使用了默认设置。

在开发机器上进行集成测试的设置非常轻松。

,我特别不喜欢的唯一的事情就是清理使用迁飞测试之间的数据库是非常缓慢的,因为它不只是清理表,但擦除整个方案。

然而,这是不是对我来说是一个大问题,现在(目前拥有约100个测试),并很可能不会是困难的,如果以后需要优化。