自动同步数据库
郭胜凯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 语法均来自数据库方言。
