【发布时间】:2017-07-02 09:17:55
【问题描述】:
我正在将 SQL 数据库 (PostgreSQL) 集成到我的第一个 Java 后端系统中。
我现在的困境是应用程序应该自己创建数据库和表,还是应该假设使用表初始化的所需数据库可用?
如果应用程序不应该自己管理数据库,那么在开发人员的机器上复制数据库的最佳方法是什么(我希望能够在本地运行与真实数据库的集成测试)?
【问题讨论】:
-
如果应用程序不创建/初始化数据库,那么其他人将不得不这样做。如果您让您的应用担心这一点,那么您可以尝试保持一致的行为。
-
通常,您不会让应用程序管理数据库。如果您决定放弃 psotgres,请减少返工。最好简单地提供一个 SQL 脚本供其他人运行。更好 - 提供 docker/vagrant 图像。其他人甚至不必担心安装 postgres。
-
我会在应用程序之外创建数据库。 PL/pgSQL 脚本是创建/填充和维护开发人员数据库的绝佳方式。
-
感谢大家的 cmets 和想法。在快速查看了我的选项后,我决定按照@Max 的建议继续使用 FlyWay。一旦开始工作,将报告我的经验。
标签: sql database integration-testing database-administration