给出以下伪cql表结构:
CREATE TABLE searches (
category text,
timestamp timestamp,
no_of_searches int,
avg_searches double,
PRIMARY KEY((category, timestamp), no_of_searches)
);
以及以下Rails Cequel模型:
class Search
include Cequel::Record
# Table columns
key :category, :text
key :timestamp, :timestamp
key :no_of_searches, :int
column :avg_searches, :double
end
当我尝试使用以下方法同步模型时:
rake cequel:migrate
抛出以下rake错误:
rake aborted!
Cequel::InvalidSchemaMigration: Existing partition keys category,timestamp differ from specified partition keys timestamp
我正在尝试使用分区键让上面的rails模型与上面的表同步,尽管它说明两组密钥是不同的。我尝试以相同的顺序定义键,但没有奏效。
我的目标是获取预定义的数据库表,其中分区键与rails模型一起使用。任何帮助都将不胜感激!
答案 0 :(得分:5)
key
方法支持将选项哈希作为第三个参数。选项哈希为定义的键添加了进一步的支持,例如order
和partitioning
。
根据给定的表定义,这意味着您的表列看起来像这样:
# Table columns
key :category, :text, { partition: true }
key :timestamp, :timestamp, { partition: true }
key :no_of_searches, :int
column :avg_searches, :double
不幸的是,在Cequel README中没有记录,但是代码中记录了它,可以找到here。