如何指示ecto不创建自动增量id字段?

sha*_*evy 5 elixir

Ecto迁移会自动在表中按名称"id"创建自动增量字段.

  1. 如何避免创建此字段?
  2. 如何将表中的另一列设置为主键(不是自动增量)?

Pat*_*ity 14

您可以选择退出自动生成的主键列与primary_key: false选项table/2.您可以将另一列设置为主键,并提供以下primary_key: true选项add/3:

create table(:users, primary_key: false) do
  add :my_id, :integer, primary_key: true
  add :name, :string
  # ...
end
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档:

http://hexdocs.pm/ecto/0.11.3/Ecto.Migration.html#table/2 http://hexdocs.pm/ecto/0.11.3/Ecto.Migration.html#add/3