【发布时间】:2021-08-29 19:56:32
【问题描述】:
在我的 Java 应用程序中,我有以下迁移文件:
-- code omitted for brevity
create table if not exists demo_table
(
id bigint not null,
"company" varchar(50) not null,
"name" varchar(50) not null
);
create unique index if not exists demo_table_uuid_company_key
on demo_table (uuid, "company");
create index if not exists demo_table_name_company_key
on demo_table ("name", "company");
虽然我可以在 PostgreSQL 查询窗口上运行 sql part part 部分或一次运行,但在运行我的 Java 应用程序时,它会引发以下错误:
“无法在表 demo_table 上创建索引(名称,公司):找不到数据库列“名称”。请确保使用正确的列名称,这取决于使用的命名策略(可能不是与实体中的属性名称相同,尤其是关系类型)"
我尝试了很多东西,例如从flyway_schema_history 表中删除相关的迁移行,删除demo_table 上的索引等。但仍然是同样的错误。如果我尝试从name 中删除双引号 (""),则会出现校验和错误。所以,由于name 是保留字,我使用双引号。我该如何解决?
另一方面,我不确定是否应该在application.yml 上更改这些参数:
spring:
flyway:
enabled: true
jpa:
hibernate:
ddl-auto: update
【问题讨论】:
-
还有其他人使用 Flyway 迁移或 PostgreSQL 吗?
标签: java spring postgresql spring-boot flyway