我是Elixir和Phoenix的新手(6个月学习),我有一种情况,我想在MySql中为BIGINT分配一个Ecto模型的字段(不是主键或表ID)。 / p>
我意识到在创建Ecto模型时,MySql表中该模型的ID会在迁移后自动映射到 BIGINT 。
检查完site后,我尝试在模型及其对应的模型中创建一个Ecto模型的字段为:整数或:id 迁移脚本,但它始终在MySql中提供 INT 数据类型。
任何人都知道Elixir或Ecto中哪些数据类型对应于MySql中的BIGINT,所以当我执行迁移脚本时,我的表会将该特定列作为BIGINT?
由于
答案 0 :(得分:4)
迁移中的类型应该是实际的数据库类型,并且在模式中它应该是Elixir中所需的类型。由于Elixir支持任意精度整数,因此数据库中的所有整数类型通常都映射到本机:integer
类型。所以你想要的是在迁移中使用:bigint
类型,在模式中使用:integer
。
create table(:foos) do
add :bar, :bigint
end
<!-- -->
schema "foos" do
field :bar, :integer
end