我们可能遇到过这种情况:
因此我们需要考虑: Springboot 到底有没有自动执行SQL的功能? 答案是确定的, 而且解决方案不止一种
ps: 特别注意 spring.datasource.data.continue-on-error: true 配置
因为在没有加上这个配置之前, 每次初始化都会执行一遍配置的SQL脚本内的SQL语句. 如果在第一次启动并建表成功后再次重启就会因项目在启动时执行SQL脚本并出现表已存在的错误导致项目启动失败 添加该属性之后, 则会忽略错误, 让项目初始化成功! 这样, 也符合我们想要在项目初始化的时候自动执行SQL脚本的思想
如果想要对mysql 进行更加细致的管理(版本管理), 可以通过整合 Flyway 来完成数据库部署和增量升级
LiquiBase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。