映射到 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
我是 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