V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wzdbsss
V2EX  ›  Java

hibernate 中 hibernate.hbm2ddl.auto=update 时,执行初始化数据库数据的最好办法?

  •  
  •   wzdbsss · 2019-04-29 17:07:25 +08:00 · 1917 次点击
    这是一个创建于 2017 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 spring boot 项目中使用 hibernate 设置 hibernate.hbm2ddl.auto=update 时,在新的环境部署时会自动创建数据库表结构,但不会执行 data.sql 中的数据库初始语句。但使用 create,就会在第二次启动时清除数据库重新创建。

    期待的结果 在 hibernate 中使用 hmb2ddl.auto=update 的同时,部署到新环境时自动初始化 data.sql 里面的语句插入一些初始数据

    4 条回复    2019-05-02 17:11:23 +08:00
    wc951
        1
    wc951  
       2019-04-30 08:21:09 +08:00 via Android
    springboot 官方文档拉到最下面数据库初始化部分自己看,hibernate 原生用的是 import.sql ,而且好像 update 是不会执行 sql 文件的
    gongxufan
        2
    gongxufan  
       2019-04-30 14:37:48 +08:00
    最好别依赖这个机制,现场清库的风险担不起
    hantsy
        3
    hantsy  
       2019-05-01 19:47:19 +08:00
    开发时 Update 策略不错。
    生产环境直接用 none, 配合 CI/CD 的话,用 Flyway (相当于 database 也版本控制了)更多一些。
    wzdbsss
        4
    wzdbsss  
    OP
       2019-05-02 17:11:23 +08:00 via iPhone
    @gongxufan 文档上没提到 update 会清空数据库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3095 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:57 · PVG 21:57 · LAX 05:57 · JFK 08:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.