简体   繁体   中英

Ecto or Elixir datatype that maps to MySql BIGINT

I'm new to Elixir and Phoenix (6 months learning), I have a situation where I want to assign an Ecto model's field (not primary key or table ID) to BIGINT in MySql.

I realize when you create an Ecto model, the ID of that model in MySql table would automatically mapped to BIGINT after migration.

After checking this site , I tried to create an Ecto model's field to :integer or :id in both model and its corresponding migration script but it always gives me INT datatype in MySql.

Anybody knows what datatype in Elixir or Ecto that corresponds to BIGINT in MySql, so when I execute the migration script my table will have that particular column as BIGINT?

Thanks

The type in the migration should be the actual database type and in the schema it should be the type you want in Elixir. Since Elixir supports arbitrary precision integers, all integer types in databases are usually mapped to the native :integer type. So what you want is to use the :bigint type in the migration and :integer in the schema.

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

<!-- -->

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM