Spring 启动和休眠:MySQL TEXT with local h2 and Flyway
Spring Boot & Hibernate: MySQL TEXT with local h2 and Flyway
我正在构建一个 Spring 启动应用程序,它的实体中有几个长文本。
为了确保我可以很好地处理数据库迁移,我加入了 Flyway。在生产中,我使用的是 MySQL 数据库,对于本地测试,我想实现默认的 h2 数据库。
实体可能具有以下 属性
@Column(columnDefinition = "TEXT")
val startText: String?
对于我的 MySQL 数据库,这工作正常并且在我的飞路模式中看起来像这样:
start_text TEXT,
当我现在使用 Spring 中的默认 h2 内存数据库开始我的测试时,我收到以下错误:
Schema-validation: wrong column type encountered in column [start_text] in table [t_table]; found [clob (Types#CLOB)], but expecting [text (Types#VARCHAR)]
我知道 h2 不支持 MySQL 特定类型 TEXT
但实际上我不知道如何解决这个问题。
感谢任何帮助。
谢谢。
我找到了解决方法。
在我的 application.yaml 中,我有以下内容:
spring:
flyway:
placeholders:
text-datatype: 'TEXT' #defines a placeholder that is available in flyway
在我的 application.yaml 测试文件夹中,我有以下内容
spring:
flyway:
placeholders:
text-datatype: 'VARCHAR(255)'
现在我可以在我的 Flyway 脚本中使用占位符并且它工作正常:
start_text ${text-datatype}
我正在构建一个 Spring 启动应用程序,它的实体中有几个长文本。
为了确保我可以很好地处理数据库迁移,我加入了 Flyway。在生产中,我使用的是 MySQL 数据库,对于本地测试,我想实现默认的 h2 数据库。
实体可能具有以下 属性
@Column(columnDefinition = "TEXT")
val startText: String?
对于我的 MySQL 数据库,这工作正常并且在我的飞路模式中看起来像这样:
start_text TEXT,
当我现在使用 Spring 中的默认 h2 内存数据库开始我的测试时,我收到以下错误:
Schema-validation: wrong column type encountered in column [start_text] in table [t_table]; found [clob (Types#CLOB)], but expecting [text (Types#VARCHAR)]
我知道 h2 不支持 MySQL 特定类型 TEXT
但实际上我不知道如何解决这个问题。
感谢任何帮助。
谢谢。
我找到了解决方法。 在我的 application.yaml 中,我有以下内容:
spring:
flyway:
placeholders:
text-datatype: 'TEXT' #defines a placeholder that is available in flyway
在我的 application.yaml 测试文件夹中,我有以下内容
spring:
flyway:
placeholders:
text-datatype: 'VARCHAR(255)'
现在我可以在我的 Flyway 脚本中使用占位符并且它工作正常:
start_text ${text-datatype}