sezaru
Is there support for using Postgres ENUM with Ash.Type.Enum?
I do know that you can do that if you create the migration yourself like it is done in this commit: chore: test enum types · ash-project/ash_postgres@a6577d5 · GitHub
But, the question is more if there is now support for it in the migration layer.
Basically, I would like to be able to create an Ash.TypeEnum and ash_postgres would handle the migration to create the type, add new values, remove old ones, etc.
Trending in Questions
I’m aware of 2 such projects, are there others?
git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
Hi everyone.
My team and I have been working on a fairly modest app based around video streaming and chat, but we’ve landed a customer t...
New
I really like the adapter patterns that ecto, nebulex, waffle, etc. use and would love find something similar for a key management servic...
New
Hello folks!
So at work, we are seeing some situations where we have to define some “fixed” strings that are used across the codebase in...
New
How Can I Optimise Compile Time Dependencies
I have been building an elixir application for about 2 years now. Many modules and files ha...
New
Other Trending Topics
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #ai
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #security
- #metaprogramming











Showing Posts 1 to 5- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
Schultzer
Postgres Enums can be annoying to maintain if you ever need to change a value etc. if it was me I would use a text column and something similar to Ecto.Enum, not sure if Ash has that, but I imagine it would.
sezaru
It has, but that became an issue if you have a huge table with a bunch of enums since that will increase the size of the table a lot. At the same time I don’t want to use integers since it decreases readability when querying the DB directly.
AFAIK, that annoying part was more prevalent before Postgres 9 since it could only add new values to the end of the enum. after that you can add in any position.
Also, needing a migration to add/remove values can be seen as something annoying, but it can also be seen as a advantage since it makes sure that no one can add wrong data to it.
Schultzer
True, worst of all is mostly in a distributed application, as the db is central, if you have a few applications running then you got a race condition, especially if you rarely have any low usage periods. But again YMMV, and I have no idea what constraints you’re working with.
garrison
Can you elaborate? Is there something wrong with
ALTER TYPE?Schultzer
No there is not something inherently wrong with it, although it does imposes constraints that can be completely avoided by having the logic live in the application, that way you can run two different version of your application without any downtime or performance degradation. As software is rarely set in stone.
Some of the constraints are complicating your migration and deployments due to table lock and consistency issues with application and database.
I’ve worked on codebases that leveraged Postgres Enums heavily, and it can be frustrating, especially when your application is the only writer to the database.