2017-07-30 54 views
0

我是Elixir和Phoenix(6個月學習)的新手,我有一種情況,我想將Ecto模型的字段(不是主鍵或表ID)分配給BIGINT MySQL的。映射到MySql的Ecto或Elixir數據類型BIGINT

我意識到,當您創建一個Ecto模型時,MySql表中該模型的ID會在遷移後自動映射到BIGINT

選中此site後,我試圖創建一個外生模型的領域:整數:在這兩個模型ID及其相應的遷移腳本,但它總是給我在MySQL INT數據類型。

任何人都知道Elixir或Ecto中與MySql中的BIGINT相對應的數據類型,所以當我執行遷移腳本時,我的表將具有特定的列作爲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 
相關問題