Postgresを使用してEctoで浮動小数点値の配列を保存したいと思います。 EctoとPhoenix FrameworkおよびElixirを使用しています。
このためにモデルと移行をどのように定義しますか
Webを検索する以外、あまり試したことはありませんが、Webを検索しても有用なものは見つかりませんでした:-(
私はこのようなスキーマでモデルを定義しようとしました:
schema "my_model" do
field :my_array, :array
timestamps
end
「フィールド:my_arrayの無効または不明なタイプ:array」というエラーが発生しました
Ecto.Schemaのプリミティブ型のリストで答えを見つけました:
答えは、次のようにタイプを定義することです。
schema "my_model" do
field :my_array, {:array, :float}
timestamps
end
あなたが書いたように 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