Java 休眠忽略schema.sql中的更改

Java 休眠忽略schema.sql中的更改,java,spring,postgresql,hibernate,spring-boot,Java,Spring,Postgresql,Hibernate,Spring Boot,我正在用SpringBoot和hibernate开发一个应用程序,它连接到docker中运行的postgres实例。当我第一次创建我的schema.sql时,它看起来是这样的: 创建表组( 组id varchar(255)主键, 组描述varchar(255), 组名称varchar(255) ); 表创建成功,但我很快意识到255对于我来说太短,并将我的架构更改为以下内容: 创建表组( 组id文本主键, 组描述文本, 组名称文本 ); 但是,数据库会不断恢复为原始数据类型。但是,当Spri

我正在用SpringBoot和hibernate开发一个应用程序,它连接到docker中运行的postgres实例。当我第一次创建我的
schema.sql
时,它看起来是这样的:

创建表组(
组id varchar(255)主键,
组描述varchar(255),
组名称varchar(255)
);
表创建成功,但我很快意识到255对于我来说太短,并将我的架构更改为以下内容:

创建表组(
组id文本主键,
组描述文本,
组名称文本
);
但是,数据库会不断恢复为原始数据类型。但是,当Spring应用程序运行时,我尝试删除该表,并再次将其创建为
varchar(255)
,而不是
text
。如何强制hibernate使用更新的模式

我已尝试将
spring.jpa.hibernate.ddl auto
属性更改为
create
update
,并尝试将字段更改为其他数据类型,包括其他长度的
varchar
。到目前为止,一切都不起作用。甚至删除schema.sql似乎也没有效果

我的
application.properties
如下所示:

spring.jpa.database=POSTGRESQL
spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=
spring.datasource.password=
spring.jpa.show sql=true
spring.jpa.generate ddl=true
spring.jpa.hibernate.ddl auto=createdrop
spring.jpa.properties.hibernate.jdbc.lob.non_context_creation=true

Text数据类型不是
Varchar
,而是
CLOB

检查您的
课程。我猜
name
desc
属性是
String
,默认的相关数据库类型是
VARCHAR(255)
。因此,如果从实体生成模式,
String
总是变成
VARCHAR(255)

如果要使用
文本
,则应使用
@Lob

公共类组{
@高球
@列(name=“group_desc”)
私有字符串描述
@高球
@列(name=“group\u name”)
私有字符串名
}
话虽如此,我认为您应该更改java/db模型,因为将
Lob
/
Text
类型作为主键/外键让我有点害怕(即使我从未尝试过)

创建表组(
组id bigint主键,
组代码文本不为空且唯一,
组描述文本,
组名称文本
);
公共类组{
@身份证
@列(name=“group\u id”)
私人长id;
@高球
@列(name=“group\u code”,null=false,unique=true)
私有字符串码;
@高球
@列(name=“group_desc”)
私有字符串描述;
@高球
@列(name=“group\u name”)
私有字符串名称;
}
注意:我通常不从实体生成模式,因此我使用下面的代码将db文本字段映射到实体属性:

@Column(name=“group_desc”,columnDefinition=“CLOB”)
私有字符串描述;

但是我不确定是否正确处理了这个问题,以便使用@Lob worked生成模式

!那么schema.sql实际上什么都不做?