Problem:
I update foreman from 3.11 to 3.12 in almalinux8 I run:
foreman-rake db:migrate
with out problem but foreman-rake db:seed fail:
foreman-rake db:migrate
== 20230719080900 FixUbuntuVersions: migrating ================================
== 20230719080900 FixUbuntuVersions: migrated (0.0071s) =======================
== 20231115151349 AddClonedFromToTemplates: migrating =========================
– add_reference(:templates, :cloned_from, {:foreign_key=>{:to_table=>:templates, :on_delete=>:nullify}})
→ 0.0061s
== 20231115151349 AddClonedFromToTemplates: migrated (0.0061s) ================
\[root@cld-config \~\]# foreman-rake db:seed
User with login admin already exists, not seeding as admin.
rake aborted!
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/validations.rb:80:in `raise_validation_error' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/validations.rb:53:in `save!’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:302:in `block in save!' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/database_statements.rb:318:in `transaction' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:350:in `with_transaction_returning_status’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:302:in `save!' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/suppressor.rb:48:in `save!’
/usr/share/foreman/lib/seed_helper.rb:134:in `block in import_raw_template' /usr/share/foreman/app/models/template.rb:74:in `ignore_locking’
/usr/share/foreman/lib/seed_helper.rb:134:in `import_raw_template' /usr/share/foreman/lib/seed_helper.rb:140:in `block in import_templates’
/usr/share/foreman/lib/seed_helper.rb:139:in `each' /usr/share/foreman/lib/seed_helper.rb:139:in `import_templates’
/usr/share/foreman/db/seeds.d/070-provisioning_templates.rb:9:in `block in <top (required)>' /usr/share/gems/gems/audited-5.7.0/lib/audited/auditor.rb:463:in `without_auditing’
/usr/share/foreman/db/seeds.d/070-provisioning_templates.rb:2:in `<top (required)>' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `load’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `block in load' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:299:in `load_dependency’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `load' /usr/share/foreman/app/services/foreman_seeder.rb:51:in `block (3 levels) in execute’
/usr/share/foreman/app/models/concerns/foreman/thread_session.rb:108:in `as' /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:114:in `as_anonymous_admin’
/usr/share/foreman/app/services/foreman_seeder.rb:50:in `block (2 levels) in execute' /usr/share/foreman/app/services/foreman_seeder.rb:44:in `each’
/usr/share/foreman/app/services/foreman_seeder.rb:44:in `block in execute' /usr/share/foreman/app/services/foreman/advisory_lock_manager.rb:21:in `block in with_transaction_lock’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:209:in `transaction’
/usr/share/foreman/app/services/foreman/advisory_lock_manager.rb:17:in `with_transaction_lock' /usr/share/foreman/app/services/foreman_seeder.rb:38:in `execute’
/usr/share/foreman/db/seeds.rb:15:in `<top (required)>' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `load’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `block in load' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:299:in `load_dependency’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `load' /usr/share/foreman/config/initializers/0_print_time_spent.rb:38:in `block in load’
/usr/share/foreman/config/initializers/0_print_time_spent.rb:17:in `benchmark' /usr/share/foreman/config/initializers/0_print_time_spent.rb:38:in `load’
/usr/share/gems/gems/railties-6.1.7.9/lib/rails/engine.rb:566:in `block in load_seed' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/callbacks.rb:117:in `block in run_callbacks’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/execution_wrapper.rb:91:in `wrap' /usr/share/gems/gems/railties-6.1.7.9/lib/rails/engine.rb:640:in `block (2 levels) in <class:Engine>’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/callbacks.rb:126:in `instance_exec' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/callbacks.rb:126:in `block in run_callbacks’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/callbacks.rb:137:in `run_callbacks' /usr/share/gems/gems/railties-6.1.7.9/lib/rails/engine.rb:566:in `load_seed’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/tasks/database_tasks.rb:450:in `load_seed' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/railties/databases.rake:392:in `block (2 levels) in <top (required)>’
/usr/share/gems/gems/rake-13.0.1/exe/rake:27:in \`<top (required)>’
Tasks: TOP => db:seed
(See full trace by running task with --trace)
the trace do not give me more info:
\[root@cld-config \~\]# foreman-rake db:seed --trace --debug
invalid option: --debug
\[root@cld-config \~\]# foreman-rake db:migrate --trace --verbose
\*\* Invoke db:migrate (first_time)
\*\* Invoke db:load_config (first_time)
\*\* Invoke environment (first_time)
\*\* Execute environment
\*\* Execute db:load_config
\*\* Invoke plugin:refresh_migrations (first_time)
\*\* Invoke environment
\*\* Execute plugin:refresh_migrations
\*\* Execute db:migrate
\*\* Invoke db:\_dump (first_time)
\*\* Execute db:\_dump
\*\* Invoke dynflow:migrate (first_time)
\*\* Invoke environment
\*\* Execute dynflow:migrate
\[root@cld-config \~\]# foreman-rake db:seed --trace --verbose
\*\* Invoke db:seed (first_time)
\*\* Invoke db:load_config (first_time)
\*\* Invoke environment (first_time)
\*\* Execute environment
\*\* Execute db:load_config
\*\* Execute db:seed
\*\* Invoke db:abort_if_pending_migrations (first_time)
\*\* Invoke db:load_config
\*\* Execute db:abort_if_pending_migrations
\*\* Invoke dynflow:abort_if_pending_migrations (first_time)
\*\* Invoke environment
\*\* Execute dynflow:abort_if_pending_migrations
User with login admin already exists, not seeding as admin.
rake aborted!
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/validations.rb:80:in `raise_validation_error' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/validations.rb:53:in `save!’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:302:in `block in save!' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/database_statements.rb:318:in `transaction' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:350:in `with_transaction_returning_status’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:302:in `save!' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/suppressor.rb:48:in `save!’
/usr/share/foreman/lib/seed_helper.rb:134:in `block in import_raw_template' /usr/share/foreman/app/models/template.rb:74:in `ignore_locking’
/usr/share/foreman/lib/seed_helper.rb:134:in `import_raw_template' /usr/share/foreman/lib/seed_helper.rb:140:in `block in import_templates’
/usr/share/foreman/lib/seed_helper.rb:139:in `each' /usr/share/foreman/lib/seed_helper.rb:139:in `import_templates’
/usr/share/foreman/db/seeds.d/070-provisioning_templates.rb:9:in `block in <top (required)>' /usr/share/gems/gems/audited-5.7.0/lib/audited/auditor.rb:463:in `without_auditing’
/usr/share/foreman/db/seeds.d/070-provisioning_templates.rb:2:in `<top (required)>' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `load’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `block in load' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:299:in `load_dependency’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `load' /usr/share/foreman/app/services/foreman_seeder.rb:51:in `block (3 levels) in execute’
/usr/share/foreman/app/models/concerns/foreman/thread_session.rb:108:in `as' /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:114:in `as_anonymous_admin’
/usr/share/foreman/app/services/foreman_seeder.rb:50:in `block (2 levels) in execute' /usr/share/foreman/app/services/foreman_seeder.rb:44:in `each’
/usr/share/foreman/app/services/foreman_seeder.rb:44:in `block in execute' /usr/share/foreman/app/services/foreman/advisory_lock_manager.rb:21:in `block in with_transaction_lock’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/transactions.rb:209:in `transaction’
/usr/share/foreman/app/services/foreman/advisory_lock_manager.rb:17:in `with_transaction_lock' /usr/share/foreman/app/services/foreman_seeder.rb:38:in `execute’
/usr/share/foreman/db/seeds.rb:15:in `<top (required)>' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `load’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `block in load' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:299:in `load_dependency’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/dependencies.rb:326:in `load' /usr/share/foreman/config/initializers/0_print_time_spent.rb:38:in `block in load’
/usr/share/foreman/config/initializers/0_print_time_spent.rb:17:in `benchmark' /usr/share/foreman/config/initializers/0_print_time_spent.rb:38:in `load’
/usr/share/gems/gems/railties-6.1.7.9/lib/rails/engine.rb:566:in `block in load_seed' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/callbacks.rb:117:in `block in run_callbacks’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/execution_wrapper.rb:91:in `wrap' /usr/share/gems/gems/railties-6.1.7.9/lib/rails/engine.rb:640:in `block (2 levels) in <class:Engine>’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/callbacks.rb:126:in `instance_exec' /usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/callbacks.rb:126:in `block in run_callbacks’
/usr/share/gems/gems/activesupport-6.1.7.9/lib/active_support/callbacks.rb:137:in `run_callbacks' /usr/share/gems/gems/railties-6.1.7.9/lib/rails/engine.rb:566:in `load_seed’
/usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/tasks/database_tasks.rb:450:in `load_seed' /usr/share/gems/gems/activerecord-6.1.7.9/lib/active_record/railties/databases.rake:392:in `block (2 levels) in <top (required)>’
/usr/share/gems/gems/rake-13.0.1/lib/rake/task.rb:281:in `block in execute' /usr/share/gems/gems/rake-13.0.1/lib/rake/task.rb:281:in `each’
/usr/share/gems/gems/rake-13.0.1/lib/rake/task.rb:281:in `execute' /usr/share/gems/gems/rake-13.0.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain’
/usr/share/gems/gems/rake-13.0.1/lib/rake/task.rb:199:in `synchronize' /usr/share/gems/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain’
/usr/share/gems/gems/rake-13.0.1/lib/rake/task.rb:188:in `invoke' /usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:160:in `invoke_task’
/usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:116:in `block (2 levels) in top_level' /usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:116:in `each’
/usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:116:in `block in top_level' /usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:125:in `run_with_threads’
/usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:110:in `top_level' /usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:83:in `block in run’
/usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling' /usr/share/gems/gems/rake-13.0.1/lib/rake/application.rb:80:in `run’
/usr/share/gems/gems/rake-13.0.1/exe/rake:27:in `<top (required)>' /usr/bin/rake:23:in `load’
/usr/bin/rake:23:in \`’
Tasks: TOP => db:seed
It seems the problem is relate with one of my custom provisioning templates, but I do not know how to solve the seed problem.
Any hints?
Expected outcome:
the forman-rake db:seed works without error
Foreman and Proxy versions:
rpm -qa | grep -i foreman | sort
foreman-3.12.1-1.el8.noarch
foreman-cli-3.12.1-1.el8.noarch
foreman-debug-3.12.1-1.el8.noarch
foreman-dynflow-sidekiq-3.12.1-1.el8.noarch
foreman-installer-3.12.1-1.el8.noarch
foreman-obsolete-packages-1.10-1.el8.noarch
foreman-postgresql-3.12.1-1.el8.noarch
foreman-proxy-3.12.1-1.el8.noarch
foreman-redis-3.12.1-1.el8.noarch
foreman-release-3.12.1-1.el8.noarch
foreman-selinux-3.12.1-1.el8.noarch
foreman-service-3.12.1-1.el8.noarch
rubygem-foreman_maintain-1.7.6-1.el8.noarch
rubygem-foreman_puppet-7.0.0-2.fm3_12.el8.noarch
rubygem-hammer_cli_foreman-3.12.0-1.el8.noarch
rubygem-hammer_cli_foreman_puppet-0.1.0-1.fm3_11.el8.noarch
Foreman and Proxy plugin versions:
Distribution and version:
cat /etc/redhat-release
AlmaLinux release 8.10 (Cerulean Leopard)
Other relevant data:
I have forman 3.6 I ugrade to 3.7 then 3.8 then … 3.10. From 3.10 to 3.11 I had an error in collate foerm postgres 12 to 13 but I solved it change che collate:
froam C to C.UTF8
psql
psql (12.22)
Type “help” for help.
postgres=# \\l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------±---------±---------±-----------±------------±----------------------
foreman | foreman | UTF8 | en_US.utf8 | en_US.utf8 | =T/foreman +
| | | | | foreman=CTc/foreman
postgres | postgres | UTF8 | C | en_US.UTF-8 |
template0 | postgres | UTF8 | C | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=# UPDATE pg_database SET datcollate=‘C.UTF-8’, datctype=‘C.UTF-8’ WHERE datname=‘template1’;
UPDATE 1
postgres=# UPDATE pg_database SET datcollate=‘C.UTF-8’, datctype=‘C.UTF-8’ WHERE datname=‘template0’;
UPDATE 1
postgres=# UPDATE pg_database SET datcollate=‘C.UTF-8’, datctype=‘C.UTF-8’ WHERE datname=‘postgres’;
UPDATE 1
postgres=# UPDATE pg_database SET datcollate=‘C.UTF-8’, datctype=‘C.UTF-8’ WHERE datname=‘foreman’;
UPDATE 1
postgres=# \\l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------±---------±---------±--------±--------±----------------------
foreman | foreman | UTF8 | C.UTF-8 | C.UTF-8 | =T/foreman +
| | | | | foreman=CTc/foreman
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=# \\q
After that all upgrade command stated to work fine.
I have in db about 170 hosts and diffrents OS and custom templates and about 30 puppets modules (classes)