it is strange idea, you are restoring only part of database and expect system to work properly?
When restoring routing data I can’t use seed option, because it creates conflict on restore.
It is strange idea to use seed to restore backup.
I recommend to use PITR mechanism for backup.
Also this is offtopic. There is no relation between backup and initial question about replication.
it is strange idea, you are restoring only part of database and expect system to work properly?
Might be not clear
No I am restoring in full routing database . CDR database is separate and it created from scratch ( after replication failure ) .
And that part of the issue that if I am restoring routing database , I can’t find proper way to bootstrap CDR database separately.
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 RAILS_ENV=production ./bin/bundle.sh exec rake db:reset:cdr
2026-03-25 17:58:22.684315 W [92455:27160] Rails – config/policy_roles.yml config is missing. Default rule is disallow.
App Timezone Canada/Eastern
Yeti DB timezone UTC
CDR DB timezone UTC
ActiveRecord timezone utc
Dropped database ‘mydb’
Created database ‘mydb’
rake aborted!
2026-03-25 17:58:25.062280 I [92455:worker-1] Rails – sentry – [Transport] Sending envelope with items [event] cb53e52f208940dd9ffffe1568c727c3 to Sentry
TypeError: Invalid type for configuration. Expected Symbol, String, or Hash. Got nil (TypeError)
raise TypeError, "Invalid type for configuration. Expected Symbol, String, or Hash. Got #{config.inspect}"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/database_configurations.rb:183:in resolve' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_handler.rb:267:in resolve_pool_config’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_handler.rb:116:in establish_connection' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/tasks/database_tasks.rb:563:in with_temporary_pool’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/tasks/database_tasks.rb:523:in with_temporary_pool_for_each' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.2.1/lib/active_record/railties/databases.rake:585:in block (5 levels) in ’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/sentry-ruby-5.12.0/lib/sentry/rake.rb:26:in execute' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in <top (required)>’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/cli/exec.rb:59:in load' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/cli/exec.rb:59:in kernel_load’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/cli/exec.rb:23:in run' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/cli.rb:452:in exec’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/vendor/thor/lib/thor/command.rb:28:in run' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/vendor/thor/lib/thor.rb:538:in dispatch' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/cli.rb:35:in dispatch’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/vendor/thor/lib/thor/base.rb:584:in start' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/cli.rb:29:in start’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/exe/bundle:28:in block in <top (required)>' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/lib/bundler/friendly_errors.rb:117:in with_friendly_errors’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/exe/bundle:20:in <top (required)>' /opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/exe/bundler:4:in load’
/opt/yeti-web/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.3/exe/bundler:4:in <top (required)>' ./vendor/bundler/bin/bundler:25:in load’
./vendor/bundler/bin/bundler:25:in `’
Tasks: TOP => db:reset:cdr => db:setup:cdr => db:schema:load:cdr => db:test:purge:cdr
(See full trace by running task with --trace)
2026-03-25 17:58:25.081329 E [92455:worker-1 logging_helper.rb:9] Rails – sentry – Event sending failed: Failed to open TCP connection to errors.yeti-switch.org:443 (getaddrinfo: Temporary failure in name resolution)
2026-03-25 17:58:25.081416 I [92455:worker-1] Rails – sentry – Unreported Event: TypeError: Invalid type for configuration. Expected Symbol, String, or Hash. Got nil (TypeError)
raise TypeError, "Invalid type for configuration. Expected Symbol, String, or Hash. Got #{config.inspect}"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There is no such mechanism. You have to init databases one time(during installation) and then use backup to restore them in case of failure.
Yes and that second point.
I tried to do restore of CDR and routing database in full. In this case CDR services and pgqd never starts.
Output attached
I renamed file from TXT , upload is not accepting text.
log-2-yeti.yml (22.7 KB)
Thank you for reply,
For backups I am use pgbackrest
With wal archive command
archive_command = 'pgbackrest --stanza=main archive-push %p'
The whole story unfolds when master is destroyed, only backup is available.
I will review backup strategy, to see all restore options.
The ideal case scenario that will be possible to restore databases separately a specially cdr with yeti internal tools like rake –tasks.
I restored routing database after master failure no problem, but CDR can’t bootstrap separately.
When database is destroyed - you have to restore it from backup and it is not related to yeti components at all. You should not run any rake tasks there, just use your backup tools.
You can use pgbackrest or pg_dump, but you have to read documentation, as @PaulH mentioned: