【问题标题】:Alternatives to DDLUtils from apache来自 Apache 的 DDLUtils 的替代品
【发布时间】:2014-12-12 05:21:11
【问题描述】:

我想知道有哪些替代方案可以替代 Apache 的 DDL 实用程序。

我问这个是因为 ddlutils 项目接缝是死的,而且它不支持 H2 数据库。我已经搜索过了,我发现了像 Liquidbase 或 flyway 这样的建议。

我的问题是:这些框架在项目启动时运行,并根据一些 XML 文件更改数据库结构。它们确实是为数据库迁移而设计的。

我想要的是一个在运行时以高抽象级别创建/更改表的框架,即至少支持 Mysql、Sqlserver、oracle 和 H2。

例如,我可以告诉引擎我想创建一个字段 AGE 和 Type Number 的表,框架会改写为:

create table MY( id bigint(20))
create table MY(id bigint)
create table MY (id, number)

取决于底层数据库引擎。

有什么建议吗?

我可以看到 ddlutils 有一个补丁,它支持 H2。但是我无法修补我的 svn checkout...

任何帮助将不胜感激。

提前致谢 瑞

【问题讨论】:

  • 到目前为止你有什么发现吗?
  • 我也需要这个。 @GabrielBR 你有什么发现吗?
  • 想知道一个很好的最新框架

标签: java database runtime ddl ddlutils


【解决方案1】:

我知道这是一个老帖子,但想给出一个明确的答案。

是的,DdlUtils 已经死了,已经 2 年没有更新了。

但是,看起来这些人可能已经切换到https://www.symmetricds.org。他们的仓库是https://github.com/JumpMind/symmetric-ds

只要你从表面开始,你就会发现 DdlUtils 的核心仍然存在(甚至还有一些旧的 Apache 版权声明)。

类名称已更改,API 已更改,因此没有一对一的映射,但它会定期更新并包括 H2 和其他数据库支持。老实说,我宁愿得到这些东西,也不愿保留旧的 API。

您不会像旧的 DdlUtils 文档那样找到有关使用 Symmetric DS 的指南,但代码中的内容足够您将其拼凑起来。

【讨论】:

    【解决方案2】:

    这看起来很有希望:https://bitbucket.org/aragot/play-sql-dialects/src

    至少作为一个开始。

    【讨论】:

      【解决方案3】:

      Mogwai ERD 设计师可能会有所帮助,尽管他们并未正式支持 H2,但您可以将 H2 置于与受支持的数据库系统之一兼容的模式:https://sourceforge.net/p/mogwai

      【讨论】:

        【解决方案4】:

        看看jOOQ,它在生成 DDL(以及 DML)方面非常有用

        create.createTable("table")
              .column("column1", INTEGER)
              .column("column2", VARCHAR(10).nullable(false))
              .constraints(
                  constraint("pk").primaryKey("column1"),
                  constraint("uk").unique("column2"),
                  constraint("fk").foreignKey("column2").references("some_other_table"),
                  constraint("ck").check(field(name("column2")).like("A%"))
              )
              .execute();
        

        【讨论】:

          猜你喜欢
          • 2023-02-02
          • 2018-03-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-02
          • 2011-12-13
          • 1970-01-01
          • 2015-06-07
          相关资源
          最近更新 更多