自动同步数据库

郭胜凯2026/08/17

在使用 Smart Mybatis 进行开发时, 我们可以启用自动同步数据库功能, 以便在应用启动时根据实体类的定义自动创建或更新数据库表结构。这对于快速开发和迭代非常有帮助, 可以减少手动维护数据库结构的工作量。

启用自动同步数据库

要启用自动同步数据库功能, 可以在配置文件中添加以下配置:

spring:
  mybatis:
    smart:
      auto-sync-db: true

或者使用 Properties 格式:

spring.mybatis.smart.auto-sync-db=true

在上述示例中, 我们将 auto-sync-db 选项设置为 true, 以启用自动同步数据库功能。 这样, 当应用启动时, Smart Mybatis 会检查实体类与数据库表结构的差异, 并根据实体类的定义自动创建或更新相应的数据库表。

注意事项

  • 默认值是 false
  • 表不存在时,框架通过当前方言创建表、主键和普通列。
  • 表已存在时,框架读取 JDBC 元数据,添加缺失列,并可能在类型或注释不一致时生成修改列 SQL。
  • 不会删除数据库中多余的列,也不会迁移已有数据。
  • 字段改名通常会被识别为新增列,不是保留数据的重命名。
  • 启用后应用账号需要 DDL 权限。
  • MySQL、H2、Oracle、DB2 的 DDL 不同,必须使用部署目标数据库做集成测试。

生产环境

自动同步不提供版本历史、锁、回滚和数据迁移。生产环境建议关闭,并使用 Flyway、Liquibase 等迁移工具。

自动同步所用的字段类型、标识符和 ALTER 语法均来自数据库方言

Last Updated 11/23/2025, 9:16:20 PM