ndan
Concurrent index migration fails on partitioned oban_jobs
Oban.Pro.Migration.up(version: "1.7.0", only: :indexes) fails on partitioned oban_jobs table when upgrading Oban Pro from 1.6 to 1.7
defmodule App.Repo.Migrations.UpgradeObanProTo17Indexes do
use Ecto.Migration
@disable_migration_lock true
@disable_ddl_transaction true
def up, do: Oban.Pro.Migration.up(version: "1.7.0", only: :indexes)
def down, do: Oban.Pro.Migration.down(version: "1.7.0", only: :indexes)
end
15:38:26.974 [info] create index if not exists public.oban_jobs_workflow_index
** (Postgrex.Error) ERROR 0A000 (feature_not_supported) cannot create index on partitioned table "oban_jobs" concurrently
(ecto_sql 3.14.0) lib/ecto/adapters/sql.ex:1121: Ecto.Adapters.SQL.raise_sql_call_error/1
(elixir 1.19.5) lib/enum.ex:1688: Enum."-map/2-lists^map/1-1-"/2
The non-concurrent migration (without only: :indexes) works fine.
Most Liked
sorentwo
Oban Core Team
There are many unexpected edge cases with partitioned tables in Postgres. That’s one of the numerous reasons we’ve deprecated DynamicPartitioner as of Pro v1.7:
This module is deprecated. The complexity and edge cases introduced by dynamic partitioning outweigh the benefits for most applications. This plugin will be removed in a future version.
Note that “future version” means v2.0, we won’t remove something functional in a minor release, but you may encounter weirdness with things like concurrent migrations.
2
Popular in Troubleshooting
When I compile hex package io_ansi_plus, I get error “Codepoint failed”. Why? and why are the “Got:” and “Hint:” codepoints identical? It...
New
Currently reading and experimenting through, which is in 1.6 Chapter 7: Sign up | Phoenix Tutorial (Phoenix 1.6) | Softcover.io
In regar...
New
Hello everyone.
I’m the author of GitHub - bugnano/wtransport-elixir: Elixir bindings for the WTransport WebTransport library · GitHub ,...
New
Summary
A downstream job that deps on a graft correctly waits for the grafted jobs at one graft level, but stops waiting when the workflo...
New
Environment
Elixir 1.18.3-otp-27 / OTP 27.3.4
Oban 2.20.2
Phoenix 1.7.x
db_connection 2.8.1 / Postgrex 0.21.1
Infrastructure: Google Cl...
New
Environment
Oban Pro: 1.7.6
Oban: 2.22.1
Issue
When a sub-workflow built with Workflow.put_context/2 is attached to a parent via ...
New
Hello, I am currently using Elixir 1.18.4 and OTP 27 with Linux Mint 22.3 - Cinnamon 64-bit as my operating system. I came across this er...
New
A graft inside another graft causes Oban.Pro.Workflow.status to recurse forever. oban_pro 1.7.5
defmodule App.NestedGraftRepro.Test do
...
New
Hi, I’m on Linux Mint 22.3 - Cinnamon 64-bit, and I encountered an error when trying to build an elixir phoenix container
577.1 Reading...
New
I have three modules, a Business which is associated Tags and Categories though join tables business_tags and business_categories. I inte...
New
Other popular topics
Hi,
I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
If I have a post route which an argument:
post /my_post_route/:my_param1, MyController.my_post_handler
How would get the post params ...
New
What is the idiomatic way of matching for not nil in Elixir?
E.g.,
First way:
defp halt_if_not_signed_in(conn, signed_in_account) when...
New
Hi all,
I’ve just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage.
I’m trying to use Postgres...
New
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors:
[WARN] - (starship::utils): Executing command ...
New
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar.
I p...
New
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
Hi everyone,
I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
What is the proper way to load a module from a file in to IEX?
In the python world, doing something like this pretty standard:
from ....
New
Hi!
Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









