首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Postgres的枚举类型与Ecto一起使用

如何将Postgres的枚举类型与Ecto一起使用
EN

Stack Overflow用户
提问于 2016-02-06 20:05:57
回答 6查看 7.6K关注 0票数 19

使用PostgreSQL,我们可以这样做:

代码语言:javascript
复制
CREATE TYPE order_status AS ENUM ('placed','shipping','delivered')

埃克托官方医生中,没有本地类型来映射Postgres的枚举类型。此模块为枚举结构提供自定义类型,但它映射到数据库中的整数。我可以很容易地使用这个库,但我更喜欢使用随数据库附带的本机枚举类型。

Ecto还提供了一种创建自定义类型的方法,但据我所见,自定义类型必须映射到本地Ecto类型.

有人知道这是否可以用Ecto的模式来完成吗?如果是,迁移将如何工作?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-03-01 18:11:20

Ecto_enum现在支持postgres枚举类型的枚举#使用-母线-枚举类型

票数 5
EN

Stack Overflow用户

发布于 2016-05-13 17:40:20

也许我做错了什么,但我只是创建了这样的类型和字段:

代码语言:javascript
复制
# creating the database type
execute("create type post_status as enum ('published', 'editing')")

# creating a table with the column
create table(:posts) do
  add :post_status, :post_status, null: false
end

然后把字段变成一个字符串:

代码语言:javascript
复制
field :post_status, :string

而且看起来很管用。

票数 29
EN

Stack Overflow用户

发布于 2016-11-01 18:06:09

“JustMichael”的小强化。如果需要回滚,可以使用:

代码语言:javascript
复制
def down do
  drop table(:posts)
  execute("drop type post_type")
end
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35245859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档