这个问题几乎说明了一切。我正在尝试从具有联合主键的表中使用 TimescaleDB 创建一个超表:
CREATE TABLE cars
(
id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY,
time_bought TIMESTAMP NOT NULL,
brand VARCHAR(100),
);
ALTER TABLE cars ADD CONSTRAINT PK_id_time_bought PRIMARY KEY(id, time_bought);
SELECT create_hypertable('cars', 'time_bought');
当我尝试通过 Intellij 使用 Java 运行它时,我收到此错误:
SQL State : 42883
Error Code : 0
Message : ERROR: function create_hypertable(unknown, unknown) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 8
Location : db/migration/tenants/V1__init_schema.sql (C:\example\target\classes\db\migration\tenants\V1__init_schema.sql)
Line : 45
Statement : SELECT create_hypertable('cars', 'time_bought')
更新:我尝试在不将任何主键放入表中的情况下运行迁移,但它仍然给出相同的错误。问题可能是 Flyway 根本不支持 TimescaleDB 函数吗?如果是这样,我该如何解决?