Java库用于维护数据库结构。

10

我的应用程序一直在不断开发,所以偶尔会有需要创建/更改/删除某些表、修改某些数据等操作,通常需要执行一些SQL代码。

是否有可以用来保持数据库结构最新的Java库(通过分析类似 "db structure version" 的信息,并执行自定义SQL代码以从一个版本更新到另一个版本)?

此外,最好能够准备一些基本操作(例如添加/删除列),并且只需要进行最少的配置,即名称/类型而不需要SQL代码。

6个回答

3

试试 Liquibase

Liquibase是一个开源(Apache 2.0许可),数据库无关的库,用于跟踪、管理和应用数据库变更。它建立在一个简单的前提上:所有数据库变更都以人类可读但可追踪的形式存储,并检入源代码控制。

支持的特性:

  • 可扩展性
  • 合并多个开发者的更改
  • 代码分支
  • 多个数据库
  • 管理生产数据以及各种测试数据集
  • 群集安全的数据库升级
  • 自动更新或生成SQL脚本,可以由DBA批准和应用
  • 更新回滚
  • 数据库“差异”
  • 从现有数据库生成起始更改日志
  • 生成数据库变更文档

3
尝试使用DBDeploy。虽然我以前没有使用过它,但听起来这个项目会对你有所帮助。DBDeploy是一个数据库重构管理器,可以:

"自动化建立需要进行哪些数据库重构才能将其迁移到特定构建的特定数据库的过程。"

已知可以与Ant和Maven集成。


2
我们使用一个叫做Liquibase的软件来实现这个功能。它非常灵活,可以根据你的需要进行设置。我们将它与Maven集成,这样我们的数据库就始终保持最新状态。

1
你还可以查看Flyway(在SOW上有400个标记问题)或mybatis(有1049个标记问题)。为了增加比较,还提到了其他选项:Liquibase(有663个标记问题)和DBDeploy(有24个标记问题)。 另一个有用的资源是Flyway网站上的功能比较(那里还提到了其他相关项目)。

0

你应该看一下OR Mapping库,例如Hibernate


0

大多数ORM映射器都有逻辑来为您执行模式升级,我已经成功使用Hibernate,它至少可以自动正确处理基本内容。


你有没有尝试过从ORM转向OGM?我们正在从Oracle迁移到Mongo,我想知道是否可以仅更改库来完成迁移,或者是否有文档可帮助进行过渡... - Travis Heeter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接