2017-07-30 3 views
0

ElixirとPhoenix(6ヶ月学習)が初めてのので、Ectoモデルのフィールド(主キーまたはテーブルIDではない)をBIGINTに割り当てたい状況があります。 MySql。MySqlにマップされたEctoまたはElixirデータ型BIGINT

Ectoモデルを作成すると、MySqlテーブルのそのモデルのIDは、マイグレーション後にBIGINTに自動的にマップされます。

このsiteを確認した後、私はにエクトモデルのフィールドを作成しようとしました:モデルとそれに対応する移行スクリプトの両方にIDが、それは常に私のMySQLでINTデータ型を提供します:整数または

MySqlのBIGINTに対応するElixirまたはEctoのデータ型は誰でも知っているので、私はマイグレーションスクリプトを実行するとテーブルにBIGINTという特定の列がありますか?移行中

おかげ

+1

マイグレーションでは ':bigint'、スキーマでは':integer'としてみてください。 – Dogbert

+0

@Dogbert、ありがとう:) –

答えて

1

タイプは、実際のデータベースタイプである必要があり、スキーマにそれはあなたがエリクサーにしたいタイプでなければなりません。 Elixirは任意の精度整数をサポートしているため、データベース内のすべての整数型は通常、ネイティブ:integer型にマップされます。だからあなたが望むのは、移行に:bigintタイプを使用し、スキーマに:integerを使用することです。

create table(:foos) do 
    add :bar, :bigint 
end 

<!-- --> 

schema "foos" do 
    field :bar, :integer 
end 
関連する問題