Вопрос в значительной степени говорит обо всем. Я пытаюсь создать гипертаблицу с 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');
Когда я пытаюсь запустить это с помощью Java через Intellij, я получаю эту ошибку:
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? И если да, то как мне это обойти?
\dx
, чтобы узнать, установлен ли TimescaleDB в этой базе данных (он должен быть установлен в каждой базе данных). Вы в публичной схеме? - person k_rus   schedule 26.05.2021SELECT public.create_hypertable(...
. TimescaleDB по умолчанию создает функции вpublic
, поэтому его не будет в вашей схеме. - person k_rus   schedule 27.05.2021public
имени схемы при вызове функции? - person k_rus   schedule 27.05.2021