Postgresql 12 + foreman 1.22.1

Problem:
When installing foreman on postgres12 Foreman installation fails witht the following error:

/usr/sbin/foreman-rake db:migrate --trace

** Invoke db:migrate (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
Apipie cache enabled but not present yet. Run apipie:cache rake task to speed up API calls.
rake aborted!
Sequel::DatabaseError: PG::UndefinedObject: ERROR: constraint “dynflow_steps_execution_plan_uuid_fkey1” of relation “dynflow_steps” does not exist

I’ve ran the installer on PostgreSQL 11, and that works. When looking at the table ‘dynflow_steps’, we notice a difference between PgSQL 11 and 12:
11:

psql -d foreman
psql (11.5)
Type "help" for help.

foreman=# \d dynflow_steps
                            Table "public.dynflow_steps"
       Column        |            Type             | Collation | Nullable | Default
---------------------+-----------------------------+-----------+----------+---------
 execution_plan_uuid | uuid                        |           | not null |
 id                  | integer                     |           | not null |
 action_id           | integer                     |           |          |
 data                | text                        |           |          |
 state               | text                        |           |          |
 started_at          | timestamp without time zone |           |          |
 ended_at            | timestamp without time zone |           |          |
 real_time           | double precision            |           |          |
 execution_time      | double precision            |           |          |
 progress_done       | double precision            |           |          |
 progress_weight     | double precision            |           |          |
 class               | text                        |           |          |
 error               | text                        |           |          |
 action_class        | text                        |           |          |
 children            | text                        |           |          |
 queue               | text                        |           |          |
Indexes:
    "dynflow_steps_pkey" PRIMARY KEY, btree (execution_plan_uuid, id)
    "dynflow_steps_execution_plan_uuid_id_index" UNIQUE, btree (execution_plan_uuid, id)
    "dynflow_steps_execution_plan_uuid_action_id_index" btree (execution_plan_uuid, action_id)
    "dynflow_steps_execution_plan_uuid_index" btree (execution_plan_uuid)
Foreign-key constraints:
    "dynflow_steps_execution_plan_uuid_fkey" FOREIGN KEY (execution_plan_uuid) REFERENCES dynflow_execution_plans(uuid)
    "dynflow_steps_execution_plan_uuid_fkey1" FOREIGN KEY (execution_plan_uuid, action_id) REFERENCES dynflow_actions(execution_plan_uuid, id)

While on 12:

$ psql -d foreman
psql (12.0)
Type "help" for help.

foreman=# \d dynflow_steps
                            Table "public.dynflow_steps"
       Column        |            Type             | Collation | Nullable | Default
---------------------+-----------------------------+-----------+----------+---------
 execution_plan_uuid | character(36)               |           | not null |
 id                  | integer                     |           | not null |
 action_id           | integer                     |           |          |
 data                | text                        |           |          |
 state               | text                        |           |          |
 started_at          | timestamp without time zone |           |          |
 ended_at            | timestamp without time zone |           |          |
 real_time           | double precision            |           |          |
 execution_time      | double precision            |           |          |
 progress_done       | double precision            |           |          |
 progress_weight     | double precision            |           |          |
 class               | text                        |           |          |
 error               | text                        |           |          |
 action_class        | text                        |           |          |
 children            | text                        |           |          |
 queue               | text                        |           |          |
Indexes:
    "dynflow_steps_pkey" PRIMARY KEY, btree (execution_plan_uuid, id)
    "dynflow_steps_execution_plan_uuid_id_index" UNIQUE, btree (execution_plan_uuid, id)
    "dynflow_steps_execution_plan_uuid_action_id_index" btree (execution_plan_uuid, action_id)
    "dynflow_steps_execution_plan_uuid_index" btree (execution_plan_uuid)
Foreign-key constraints:
    "dynflow_steps_execution_plan_uuid_action_id_fkey" FOREIGN KEY (execution_plan_uuid, action_id) REFERENCES dynflow_actions(execution_plan_uuid, id)
    "dynflow_steps_execution_plan_uuid_fkey" FOREIGN KEY (execution_plan_uuid) REFERENCES dynflow_execution_plans(uuid)

It seems that on PgSQL12 no UUID columns are created, but in stead char columns. We notice this on other tables too.

Expected outcome:
Foreman works on PostgresSQL 12

Foreman and Proxy versions:
1.22.1
Foreman and Proxy plugin versions:

Other relevant data:
The logs:

 /usr/sbin/foreman-rake db:migrate --trace
** Invoke db:migrate (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
Apipie cache enabled but not present yet. Run apipie:cache rake task to speed up API calls.
rake aborted!
Sequel::DatabaseError: PG::UndefinedObject: ERROR:  constraint "dynflow_steps_execution_plan_uuid_fkey1" of relation "dynflow_steps" does not exist
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:146:in `async_exec'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:146:in `block in execute_query'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/logging.rb:38:in `log_connection_yield'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:146:in `execute_query'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:134:in `block in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:110:in `check_disconnect_errors'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:134:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:456:in `_execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:274:in `block (2 levels) in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:478:in `check_database_errors'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:274:in `block in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/connection_pool/threaded.rb:87:in `hold'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/connecting.rb:269:in `synchronize'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:274:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/query.rb:50:in `execute_dui'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/query.rb:43:in `execute_ddl'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:411:in `block in apply_alter_table'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:411:in `each'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:411:in `apply_alter_table'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:424:in `apply_alter_table_generator'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:70:in `alter_table'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/persistence_adapters/sequel_migrations/018_add_uuid_column.rb:14:in `with_foreign_key_recreation'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/persistence_adapters/sequel_migrations/018_add_uuid_column.rb:42:in `block (2 levels) in <top (required)>'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:107:in `instance_exec'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:107:in `apply'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:554:in `block (2 levels) in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/transactions.rb:204:in `_transaction'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/transactions.rb:179:in `block in transaction'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/connection_pool/threaded.rb:91:in `hold'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/connecting.rb:269:in `synchronize'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/transactions.rb:145:in `transaction'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:473:in `checked_transaction'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:553:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:550:in `each'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:550:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:401:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/persistence_adapters/sequel.rb:261:in `migrate_db'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/persistence_adapters/sequel.rb:53:in `initialize'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:186:in `new'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:186:in `initialize_persistence'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:130:in `block (2 levels) in world_config'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/config.rb:42:in `method_missing'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/world.rb:28:in `initialize'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:78:in `new'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:78:in `initialize_world'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails.rb:104:in `init_world'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails.rb:37:in `initialize!'
/usr/share/foreman/config/application.rb:321:in `init_dynflow'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `public_send'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `method_missing'
/usr/share/foreman/config/application.rb:296:in `block in <class:Application>'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:69:in `block in execute_hook'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:62:in `with_execution_control'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:67:in `execute_hook'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:51:in `each'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/application/finisher.rb:75:in `block in <module:Finisher>'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/initializable.rb:32:in `instance_exec'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/initializable.rb:32:in `run'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:228:in `block in tsort_each'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:431:in `each_strongly_connected_component_from'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:349:in `block in each_strongly_connected_component'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:347:in `each'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:347:in `call'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:347:in `each_strongly_connected_component'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:226:in `tsort_each'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:205:in `tsort_each'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/initializable.rb:60:in `run_initializers'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/application.rb:361:in `initialize!'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `public_send'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `method_missing'
/usr/share/foreman/config/environment.rb:5:in `<top (required)>'
/opt/rh/rh-ruby25/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:59:in `require'
/opt/rh/rh-ruby25/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:59:in `require'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `block in require'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:253:in `load_dependency'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `require'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/application.rb:337:in `require_environment!'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/application.rb:520:in `block in run_tasks_blocks'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:251:in `block in execute'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:251:in `each'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:251:in `execute'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:195:in `block in invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/ruby/monitor.rb:226:in `mon_synchronize'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:188:in `invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:217:in `block in invoke_prerequisites'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:215:in `each'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:215:in `invoke_prerequisites'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/ruby/monitor.rb:226:in `mon_synchronize'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:188:in `invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:217:in `block in invoke_prerequisites'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:215:in `each'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:215:in `invoke_prerequisites'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/ruby/monitor.rb:226:in `mon_synchronize'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:188:in `invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:181:in `invoke'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:160:in `invoke_task'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:116:in `each'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:116:in `block in top_level'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:125:in `run_with_threads'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:110:in `top_level'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:83:in `block in run'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:186:in `standard_exception_handling'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:80:in `run'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/exe/rake:27:in `<top (required)>'
/opt/rh/rh-ruby25/root/usr/bin/rake:23:in `load'
/opt/rh/rh-ruby25/root/usr/bin/rake:23:in `<main>'

Caused by:
PG::UndefinedObject: ERROR:  constraint "dynflow_steps_execution_plan_uuid_fkey1" of relation "dynflow_steps" does not exist
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:146:in `async_exec'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:146:in `block in execute_query'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/logging.rb:38:in `log_connection_yield'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:146:in `execute_query'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:134:in `block in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:110:in `check_disconnect_errors'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:134:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:456:in `_execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:274:in `block (2 levels) in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:478:in `check_database_errors'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:274:in `block in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/connection_pool/threaded.rb:87:in `hold'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/connecting.rb:269:in `synchronize'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:274:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/query.rb:50:in `execute_dui'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/query.rb:43:in `execute_ddl'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:411:in `block in apply_alter_table'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:411:in `each'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:411:in `apply_alter_table'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:424:in `apply_alter_table_generator'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/schema_methods.rb:70:in `alter_table'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/persistence_adapters/sequel_migrations/018_add_uuid_column.rb:14:in `with_foreign_key_recreation'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/persistence_adapters/sequel_migrations/018_add_uuid_column.rb:42:in `block (2 levels) in <top (required)>'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:107:in `instance_exec'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:107:in `apply'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:554:in `block (2 levels) in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/transactions.rb:204:in `_transaction'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/transactions.rb:179:in `block in transaction'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/connection_pool/threaded.rb:91:in `hold'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/connecting.rb:269:in `synchronize'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/database/transactions.rb:145:in `transaction'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:473:in `checked_transaction'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:553:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:550:in `each'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:550:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/extensions/migration.rb:401:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/persistence_adapters/sequel.rb:261:in `migrate_db'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/persistence_adapters/sequel.rb:53:in `initialize'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:186:in `new'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:186:in `initialize_persistence'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:130:in `block (2 levels) in world_config'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/config.rb:42:in `method_missing'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/world.rb:28:in `initialize'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:78:in `new'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails/configuration.rb:78:in `initialize_world'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails.rb:104:in `init_world'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.2.3/lib/dynflow/rails.rb:37:in `initialize!'
/usr/share/foreman/config/application.rb:321:in `init_dynflow'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `public_send'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `method_missing'
/usr/share/foreman/config/application.rb:296:in `block in <class:Application>'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:69:in `block in execute_hook'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:62:in `with_execution_control'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:67:in `execute_hook'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:51:in `each'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/application/finisher.rb:75:in `block in <module:Finisher>'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/initializable.rb:32:in `instance_exec'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/initializable.rb:32:in `run'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:228:in `block in tsort_each'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:431:in `each_strongly_connected_component_from'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:349:in `block in each_strongly_connected_component'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:347:in `each'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:347:in `call'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:347:in `each_strongly_connected_component'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:226:in `tsort_each'
/opt/rh/rh-ruby25/root/usr/share/ruby/tsort.rb:205:in `tsort_each'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/initializable.rb:60:in `run_initializers'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/application.rb:361:in `initialize!'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `public_send'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `method_missing'
/usr/share/foreman/config/environment.rb:5:in `<top (required)>'
/opt/rh/rh-ruby25/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:59:in `require'
/opt/rh/rh-ruby25/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:59:in `require'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `block in require'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:253:in `load_dependency'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `require'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/application.rb:337:in `require_environment!'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/application.rb:520:in `block in run_tasks_blocks'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:251:in `block in execute'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:251:in `each'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:251:in `execute'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:195:in `block in invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/ruby/monitor.rb:226:in `mon_synchronize'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:188:in `invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:217:in `block in invoke_prerequisites'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:215:in `each'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:215:in `invoke_prerequisites'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/ruby/monitor.rb:226:in `mon_synchronize'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:188:in `invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:217:in `block in invoke_prerequisites'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:215:in `each'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:215:in `invoke_prerequisites'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/ruby/monitor.rb:226:in `mon_synchronize'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:188:in `invoke_with_call_chain'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/task.rb:181:in `invoke'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:160:in `invoke_task'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:116:in `each'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:116:in `block in top_level'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:125:in `run_with_threads'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:110:in `top_level'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:83:in `block in run'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:186:in `standard_exception_handling'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/lib/rake/application.rb:80:in `run'
/opt/rh/rh-ruby25/root/usr/share/gems/gems/rake-12.3.0/exe/rake:27:in `<top (required)>'
/opt/rh/rh-ruby25/root/usr/bin/rake:23:in `load'
/opt/rh/rh-ruby25/root/usr/bin/rake:23:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment

1 Like

I have observed the same issue.

Probably some bug of some sort in the sequel DB GEM which is used in dynflow? @aruzicka or @ezr-ondrej ?

Thank you for pinging me.

I looked into it and it turned out to be an issue on our side, which happens when we try to migrate columns containing UUIDs stored as characters to “real” UUIDs. PR dynflow/dynflow#347 is now ready for review and I’ll update this thread when it gets merged and released.

I am having this exact issue - is there an ETA for the fix ?

A new version with the fix should be out by tomorrow.

Have exactly same error, how to fix it ?