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

Ecto or Elixir datatype that maps to MySql BIGINT

我是 Elixir 和 Phoenix 的新手(学习了 6 个月),我有一种情况想将 Ecto 模型的字段(不是主键或 table ID)分配给 [=30 中的 BIGINT =].

我意识到当你创建一个 Ecto 模型时,MySql table 中的那个模型的 ID 会在迁移后自动映射到 BIGINT

检查这个 site 之后,我尝试创建一个 Ecto 模型的字段到 :integer:id模型及其相应的迁移脚本,但它总是在 MySql.

中给我 INT 数据类型

有人知道 Elixir 或 Ecto 中的什么数据类型对应于 MySql 中的 BIGINT,所以当我执行迁移脚本时,我的 table 会将特定列作为 BIGINT?

谢谢

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

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

<!-- -->

schema "foos" do
  field :bar, :integer
end