2

给定以下伪 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 模型一起使用。任何帮助将不胜感激!

4

1 回答 1

5

key方法支持将选项散列作为第三个参数。选项散列进一步支持定义的键,例如orderpartitioning

根据给定的表定义,这意味着您的表列将如下所示:

# Table columns
key :category,        :text,      { partition: true }
key :timestamp,       :timestamp, { partition: true }
key :no_of_searches,  :int
column :avg_searches, :double

不幸的是,这没有在 Cequel README 中记录,但是它记录在代码中,可以在此处找到。

于 2014-09-23T06:27:01.367 回答