gpt4 book ai didi

Elixir Ecto 自定义主键

转载 作者:行者123 更新时间:2023-12-03 08:47:57 27 4
gpt4 key购买 nike

我正在尝试将主键从 :id 重命名为 :account_id

我有以下架构和迁移。当我尝试插入记录时,Postgres 在 account_id 列上收到“不能为空”错误。

我是否正确设置了自动生成位?我觉得这应该在迁移中。

  def change do
create table(:accounts) do
add :account_id, :integer, primary_key: true
add :email, :string
timestamps()
end
end


@primary_key {:account_id, :id, autogenerate: true}
schema "accounts" do
field :email, :string
timestamps()
end

最佳答案

这从文档或其他指南中并不明显。技巧在于 :id 字段的 :bigserial 类型。

  def change do
create table(:accounts, primary_key: false) do
add :account_id, :bigserial, primary_key: true
add :email, :string
timestamps()
end
end

关于Elixir Ecto 自定义主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60590385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com