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

时间:2017-07-30 14:07:19

标签: mysql elixir phoenix-framework ecto

我是Elixir和Phoenix的新手(6个月学习),我有一种情况,我想在MySql中为BIGINT分配一个Ecto模型的字段(不是主键或表ID)。 / p>

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

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

任何人都知道Elixir或Ecto中哪些数据类型对应于MySql中的BIGINT,所以当我执行迁移脚本时,我的表会将该特定列作为BIGINT?

由于

1 个答案:

答案 0 :(得分:4)

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

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

<!-- -->

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