database - 自定义ecto迁移主键并自动生成

标签 database postgresql elixir phoenix-framework ecto

我想创建一个用户表,其中包含一个自动生成的 aid 和一个我自己处理的 id。

我尝试了以下迁移和模式:

迁移:

def change do
  create table(:users, primary_key: false) do
    add :aid, :id, autogenerate: true
    add :id, :integer
    add :first_name, :string
    add :last_name, :string
    add :email, :string
    add :phone, :string
    add :language, :string
    add :password_hash, :string
    add :verified_email, :utc_datetime
    add :verified_phone, :utc_datetime

    timestamps()
  end

当我运行这个迁移时发生的事情是 aid 列没有被添加到我的 user 表中

我怎样才能根据需要更改数据库?

最佳答案

您应该使用 primary_key: true 而不是 autogenerate: true:

add :aid, :id, primary_key: true

关于database - 自定义ecto迁移主键并自动生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48383464/

相关文章:

java - 具有默认用户的 Spring MVC Web 应用程序

postgresql - 如何清理使用 Phoenix/Ecto 创建的 PostgreSQL 数据库

Elixir Simple 模块仅产生 "Argument Error"

elixir - elixir phoenix html生成器中的上下文是什么

mysql - 使用MySQL批量插入数据库表数据

sql-server - 如何用随机数填充数据库列

ruby-on-rails - 如何在 heroku 上为 rails 应用程序设置 postgresql?

postgresql - 'CREATE TRIGGER' 在 PostgreSQL 9.4.2 中使用什么锁(如果有)

erlang - 为什么我的 iex session 的 pid 总是相同?

sql-server - Sql Server中如何跟踪表结构的变化