代码之家  ›  专栏  ›  技术社区  ›  slau

使用hbm2ddl为数据库架构更新生成SQL DDL(不丢失数据)

  •  0
  • slau  · 技术社区  · 15 年前

    hbm2ddl hbm2java 基于XML映射文件(hbm.XML)为项目构建数据库和POJO。我现在开始在系统中获取一些真实的数据,因此重新运行我的ant脚本(删除数据库并重新创建所有内容)不再是可行的选择,因为我希望保留数据。我听说有一个hbm2ddl.auto特性,可以用来修改数据库结构而不删除数据,但我从一些关于s/o的答案中得知,这不是一个最佳实践。

    我的理解是,您应该根据映射文件中的更改编写sqlddl,并对DB运行它。我想知道是否可以使用hbm2ddl根据映射文件生成这个DDL。我也开始使用LiquiBase,但不确定这些是否适合我的情况,因为我希望继续使用hbm.xml文件作为关键数据定义源。

    2 回复  |  直到 14 年前
        1
  •  0
  •   Bozho    15 年前

    • 设置 hibernate.hbm2dll update (这是一个hibernate属性,请在中设置它 hibernate.cfg.xml ,或者在spring配置中,如果您使用它)
    • 每次(重新)启动应用程序时,数据库模式都会用新字段和约束进行更新。
    • 基本体,对应于具有 not null 应该分配一个 default 或者你应该去做一本手册 UPDATE 查询。否则会出现运行时异常。
        2
  •  0
  •   splash    15 年前

    当我试图添加独特的约束时,我遇到了hbm2ddl的能力限制,我意识到是时候选择一种更复杂的方法了。