Не удалось создать версию schema_version Flyway для dashDB

Я использую Flyway для управления миграцией БД на IBM dashDB. Эта база данных по умолчанию организует содержимое таблицы «по столбцу», что, в частности, приводит к сбою создания таблицы "schema_version". Чтобы заставить его работать, оператор SQL для создания таблицы должен включать только директиву "ORGANIZE BY ROW": CREATE TABLE (...) (...) ) ORGANIZE BY ROW

Что было бы лучшим подходом к решению этой проблемы? Я ищу решение, которое не влияет на организацию таблиц по умолчанию. Спасибо за помощь, Ура.


person Nicolas    schedule 14.03.2016    source источник
comment
Какую версию/план dashDB вы используете? Не могли бы вы изменить dft_table_org во время миграции?   -  person data_henrik    schedule 14.03.2016


Ответы (2)


dashDB будет работать лучше всего, когда все таблицы основаны на столбцах. Когда вы начинаете смешивать таблицы на основе строк и столбцов, многие операции затем выполняются с «компенсацией», что в основном означает, что они не будут в полной мере использовать возможности столбцового механизма.

В настоящее время существуют некоторые причины совместимости, по которым невозможно создать таблицу столбцов и, следовательно, должна использоваться таблица на основе строк, но исходный DDL и ошибка не указаны, поэтому я не могу сказать в этом случае. Если вы можете предоставить полный оператор CREATE TABLE и результирующую ошибку (если она у вас есть), я, возможно, смогу предоставить альтернативное решение, которое позволит вам по-прежнему использовать все таблицы на основе столбцов.

person dbehman    schedule 14.03.2016

Если вы хотите только изменить конкретную таблицу с организации столбцов на организацию строк, то рекомендуемым способом подхода к этому будет «ОРГАНИЗОВАТЬ ПО СТРОКАМ» в определении таблицы. (Кажется, это то, что вы делаете)

Изменение организации таблицы по умолчанию изменит способ создания таблиц, если вы не поместите «ORGANIZE BY» в свою таблицу ddl.

Если у вас есть права администратора в вашем экземпляре dashDB, вы можете изменить организацию таблицы по умолчанию с помощью «Выполнить SQL» в консоли dashDB или с помощью клиента dashDB. (например: clp/clpplus)

Установите организацию таблицы по умолчанию на ROW:

call ADMIN_CMD('UPDATE DB CFG USING DFT_TABLE_ORG ROW');

Установите организацию таблицы по умолчанию на COLUMN: (конфигурация dashDB по умолчанию)

call ADMIN_CMD('UPDATE DB CFG USING DFT_TABLE_ORG COLUMN');

Аналитика будет работать намного лучше с таблицами, организованными по столбцам, поэтому рекомендуется, чтобы большинство ваших таблиц были организованы по столбцам.

person jswitnicki    schedule 14.03.2016
comment
Спасибо - на самом деле это не ответ, поскольку я упомянул, что не хотел менять организацию базы данных по умолчанию. Я скорее ищу решение на уровне Flyway, которое позволило бы мне добавить эту опцию ORGANIZE BY ROW. Единственное решение, которое я нашел до сих пор, заключалось в том, чтобы указать путь к ядру пролетного пути и обновить SQL, который создает таблицу. - person Nicolas; 15.03.2016