我想使用Postgres使用Ecto存储一个浮点值数组。 我在凤凰框架和Elixir中使用了Ecto。
我如何为此定义我的模型和迁移?
除了搜索没有找到任何有用内容的网络外,我还没有尝试过多少 - (
我确实尝试使用如下模式定义模型:
schema "my_model" do
field :my_array, :array
timestamps
end
给出了错误"无效或未知类型:字段数组:my_array"
答案 0 :(得分:53)
我在这里找到了Ecto.Schema原始类型列表中的答案:
答案是定义这样的类型:
schema "my_model" do
field :my_array, {:array, :float}
timestamps
end
答案 1 :(得分:26)
正如您所写,使用Ecto.Schema
中的数组类型在模型中:
schema "my_model" do
field :my_array, {:array, inner_type}
end
@neildaemond迁移:
alter table(:my_models) do
add :my_array, {:array, inner_type}
end
将inner_type
替换为其中一种有效类型,例如:string
。
您也可以使用map
类型执行相同的操作:
schema "my_model" do
field :my_map, {:map, inner_type}
end