映射到MySql BIGINT的Ecto或Elixir数据类型

Kun*_*ack 3 mysql elixir ecto phoenix-framework

我是Elixir和Phoenix的新手(学习6个月),我想将一个Ecto模型的字段(不是主键或表ID)分配给MySql中的BIGINT。

我意识到,当您创建一个Ecto模型时,MySql表中该模型的ID将在迁移后自动映射到BIGINT

检查完此站点后,我尝试在两个模型及其对应的迁移脚本中创建一个Ecto模型的字段到:integer:id,但是在MySql中它始终为我提供INT数据类型。

谁知道Elixir或Ecto中与MySql中的BIGINT对应的数据类型是什么,所以当我执行迁移脚本时,我的表将具有该特定列作为BIGINT?

谢谢

Dog*_*ert 7

迁移中的类型应该是实际的数据库类型,而在架构中,它应该是您在Elixir中想要的类型。由于Elixir支持任意精度的整数,因此数据库中的所有整数类型通常都映射到本机:integer类型。因此,您想要:bigint在迁移和:integer架构中使用该类型。

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

<!-- -->

schema "foos" do
  field :bar, :integer
end
Run Code Online (Sandbox Code Playgroud)