我正在使用 Cequel 作为没有导轨的 Cassandra 的 ORM。
尝试创建简单的项目列表时遇到问题。首先,我用三列定义了模型,它们应该属于一个复合键。
class Project
include Cequel::Record
key :client, :text, { partition: true }
key :type, :text, { partition: true }
key :dep, :text, { partition: true }
end
后来当我尝试通过创建项目时
project = Project.create!({client: "test", type: "test", dep: "test"})
我收到表不存在的错误。这些表不是自动创建Project.create!
的,但我必须先手动创建表:
connection.schema.create_table(:projects) do
partition_key :client, :text
partition_key :type, :text
partition_key :dept, :text
end
但是这种语法与记录的记录定义不同,我只是通过筛选源代码才找到它。但这会产生两个问题。
- 代码开销
- 我不知道的语法
has_many
,belongs_to
因此如果记录包含此表,我将无法正确创建表
我是否忽略了从Project
类定义中自动创建表的方法?