创建Flyway" schema_version" dashDB

时间:2016-03-14 15:16:04

标签: flyway dashdb

我使用Flyway管理IBM dashDB上的数据库迁移。该数据库默认组织表格内容'按列#,特别是使"schema_version"表的创建失败。 为了使它工作,表创建SQL语句应该只包含"ORGANIZE BY ROW"指令: CREATE TABLE (...) (...) ) ORGANIZE BY ROW

处理此问题的最佳方法是什么?我正在寻找一种不会影响默认表组织的解决方案。 谢谢你的帮助, 欢呼声。

2 个答案:

答案 0 :(得分:0)

如果您只想将某个特定的表从有条理的列更改为有组织的行,那么就需要一个" ORGANIZE BY ROW"在表定义上将是推荐的方法来解决这个问题。 (这似乎是你正在做的事情)

更改默认表格组织将改变表格在未放置" 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');

分析将使用列组织表更好地执行,因此建议将大多数表作为列组织。

答案 1 :(得分:0)

当所有表都是基于列的时,

dashDB将表现最佳。当你开始混合基于行和列的表时,许多操作然后在“补偿”中执行,这基本上意味着它们不会充分利用柱状引擎。

目前存在一些兼容性原因导致无法创建列表,因此必须使用基于行的表,但是原始的DDL也没有出现错误,所以在这种情况下我无法分辨。如果您可以提供完整的CREATE TABLE语句和产生的错误(如果有的话),我可以提供一个替代解决方案,允许您仍然使用所有基于列的表。