我有弹簧引导1.5.x,现在迁移到2.3.8.RELEASE.
我有一个带有字段"的实体;private LocalDateTime endTime";并且在postgres DB中它被映射到类型";字节";。现在,由于我可能有了新的依赖项,flyway出现了以下错误:
Schema-validation: wrong column type encountered in column [end_time] in table [stream_info]; found [bytea (Types#BINARY)], but expecting [timestamp (Types#TIMESTAMP)]
当我用一个全新的postgres DB启动应用程序时,也会出现这种情况。
有人知道我现在该做什么吗?我需要转换器吗?这里可能有什么问题?
看起来您开始使用的Hibernate版本还不支持LocalDateTime
,所以它通过Java序列化序列化为bytea
。现在您使用的是一个较新的Hibernate版本,它支持这种类型,并将其正确映射到timestamp
。你唯一的办法就是迁移数据。您必须读取每一行,反序列化数据并将其写入临时timestamp
列。迁移所有数据后,可以重命名该列,也可以删除bytea
列以使用timestamp
列。无论哪种方式,这都需要手动迁移。