【发布时间】:2015-07-31 09:26:51
【问题描述】:
我在尝试更改 cassandra 时遇到以下问题: 我正在直接更改表格:
ALTER TABLE posts ADD is_black BOOLEAN;
在单节点环境中,无论是在 EC2 服务器下还是在本地主机上,一切都运行良好 - 选择、删除等等。
当我在具有 3 个节点的集群上进行更改时 - 东西变得越来越多。 当我执行
select().all().from(tableName).where..
我收到以下异常:
java.lang.IllegalArgumentException: is_black is not a column defined in this metadata
at com.datastax.driver.core.ColumnDefinitions.getAllIdx(ColumnDefinitions.java:273)
at com.datastax.driver.core.ColumnDefinitions.getFirstIdx(ColumnDefinitions.java:279)
at com.datastax.driver.core.ArrayBackedRow.getIndexOf(ArrayBackedRow.java:69)
at com.datastax.driver.core.AbstractGettableData.getString(AbstractGettableData.java:137)
显然我不是唯一有这种行为的人: reference
p.s - 删除创建键空间对我来说是不可能的,因为我无法删除表中包含的数据。
【问题讨论】:
-
您可以在所有节点上通过 cqlsh 查询该列吗?
-
@BryceAtNetwork23 是的,我愿意,在每个节点上对每个数据进行转换。
-
它可能与 datastax 驱动程序的缓存元数据有关。您是否可以尝试重新启动应用程序服务器以清除缓存?
标签: cassandra cassandra-2.0 datastax datastax-java-driver cassandra-cli