В связи с обновлением оборудования и потерей ключевого персонала один из сайтов, которые я поддерживаю, должен перейти с версии v2.4.0.beta2 +431 на версию 2.4.0.beta4.
При попытке восстановить резервную копию на новый сервер возникает ошибка, которую можно резюмировать следующим образом:
[2019-09-18 00:20:54] ИСКЛЮЧЕНИЕ: PG::UndefinedColumn: ОШИБКА: столбец
user_profiles.card_image_badge_id не существует
СТРОКА 1: ..._version", "user_profiles"."badge_granted_title", "user_prof...
Ниже приведён список действий, выполненных после стандартного создания индексов и таблиц. Ничего примечательного перед этой ошибкой не наблюдается.
Возможно, это поможет:
[2019-09-18 00:19:45] Текущая версия: 20190908234054
[2019-09-18 00:19:45] Восстанавливаемая версия: 20190903073730
Подробнее?
[2019-09-18 00:20:49] ALTER TABLE
[2019-09-18 00:20:49] Миграция базы данных…
[2019-09-18 00:20:54] ИСКЛЮЧЕНИЕ: PG::UndefinedColumn: ОШИБКА: столбец user_profiles.card_image_badge_id не существует
СТРОКА 1: …_version", “user_profiles”.“badge_granted_title”, "user_prof…
^
[2019-09-18 00:20:54] /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/db/pg.rb:72:in async_exec_params' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/db/pg.rb:72:in exec_params’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:668:in block (2 levels) in exec_no_cache' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/concurrency/share_lock.rb:187:in yield_shares' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:667:in block in exec_no_cache' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:707:in block (2 levels) in log’
/usr/local/lib/ruby/2.6.0/monitor.rb:235:in mon_synchronize' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:706:in block in log’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/instrumenter.rb:24:in instrument' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract_adapter.rb:697:in log’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:666:in exec_no_cache' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:647:in execute_and_clear’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:96:in exec_query' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:483:in select’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:70:in select_all' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/query_cache.rb:107:in select_all’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/querying.rb:46:in find_by_sql' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/statement_cache.rb:134:in execute’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/associations/association.rb:210:in find_target' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/associations/singular_association.rb:39:in find_target’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/associations/association.rb:160:in load_target' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/associations/association.rb:65:in reload’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/associations/singular_association.rb:9:in reader' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/associations/builder/association.rb:100:in user_profile’
(eval):59:in block (2 levels) in run_file' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:46:in eval’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:46:in block (2 levels) in run_file' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:58:in block in open’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:57:in open' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:57:in open’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:36:in block in run_file' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:277:in block in transaction’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/transaction.rb:280:in block in within_new_transaction' /usr/local/lib/ruby/2.6.0/monitor.rb:235:in mon_synchronize’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/transaction.rb:278:in within_new_transaction' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/database_statements.rb:277:in transaction’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/transactions.rb:212:in transaction' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:35:in run_file’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:26:in block in run' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:25:in each’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu/runner.rb:25:in run' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/seed-fu-2.3.9/lib/seed-fu.rb:29:in seed’
/var/www/discourse/lib/tasks/db.rake:61:in block in <top (required)>' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task.rb:273:in block in execute’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task.rb:273:in each' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task.rb:273:in execute’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task.rb:214:in block in invoke_with_call_chain' /usr/local/lib/ruby/2.6.0/monitor.rb:235:in mon_synchronize’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task.rb:194:in invoke_with_call_chain' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task.rb:183:in invoke’
/var/www/discourse/lib/backup_restore/restorer.rb:403:in migrate_database' /var/www/discourse/lib/backup_restore/restorer.rb:85:in run’
/var/www/discourse/lib/backup_restore/backup_restore.rb:169:in block in start!' /var/www/discourse/lib/backup_restore/backup_restore.rb:166:in fork’
/var/www/discourse/lib/backup_restore/backup_restore.rb:166:in start!' /var/www/discourse/lib/backup_restore/backup_restore.rb:25:in restore!’
/var/www/discourse/app/controllers/admin/backups_controller.rb:119:in restore' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/basic_implicit_render.rb:6:in send_action’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb:196:in process_action' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rendering.rb:30:in process_action’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb:42:in block in process_action' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/callbacks.rb:135:in run_callbacks’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb:41:in process_action' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rescue.rb:22:in process_action’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:33:in block in process_action' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in block in instrument’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/instrumenter.rb:24:in instrument' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in instrument’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:32:in process_action' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/params_wrapper.rb:245:in process_action’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0/lib/active_record/railties/controller_runtime.rb:27:in process_action' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb:136:in process’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.0/lib/action_view/rendering.rb:39:in process' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiling_methods.rb:104:in block in profile_method’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal.rb:191:in dispatch' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal.rb:252:in dispatch’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:51:in dispatch' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:33:in serve’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb:18:in block in <class:Constraints>' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb:48:in serve’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:49:in block in serve' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in each’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/journey/router.rb:32:in serve' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:837:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.7/lib/rack/protection/frame_options.rb:31:in call' /var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/tempfile_reaper.rb:15:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/conditional_get.rb:38:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/head.rb:12:in call' /var/www/discourse/lib/content_security_policy/middleware.rb:12:in call’
/var/www/discourse/lib/middleware/anonymous_cache.rb:274:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:232:in context’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:226:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/cookies.rb:648:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/callbacks.rb:27:in block in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0/lib/active_support/callbacks.rb:101:in run_callbacks’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/callbacks.rb:26:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/debug_exceptions.rb:32:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/show_exceptions.rb:33:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.3.2/lib/logster/middleware/reporter.rb:43:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/rack/logger.rb:38:in call_app’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/rack/logger.rb:28:in call' /var/www/discourse/config/initializers/100-quiet_logger.rb:18:in call’
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/remote_ip.rb:81:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/request_id.rb:27:in call' /var/www/discourse/lib/middleware/enforce_hostname.rb:17:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/method_override.rb:22:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/executor.rb:14:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/sendfile.rb:111:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/middleware/host_authorization.rb:77:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiler.rb:281:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.2/lib/message_bus/rack/middleware.rb:57:in call’
/var/www/discourse/lib/middleware/request_tracker.rb:176:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/engine.rb:526:in call’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in public_send' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.0/lib/rails/railtie.rb:190:in method_missing’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:68:in block in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in each’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in call' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:605:in process_client’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:700:in worker_loop' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:548:in spawn_missing_workers’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:144:in start' /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/bin/unicorn:128:in <top (required)>’
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in load' /var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in ’
[2019-09-18 00:20:54] Попытка отката…
[2019-09-18 00:20:54] Выполнение отката…
[2019-09-18 00:20:54] Очистка временных данных…
[2019-09-18 00:20:54] Удаление функции из схемы discourse_functions
[2019-09-18 00:20:55] Удаление временной директории ‘/var/www/discourse/tmp/restores/default/2019-09-18-001931’…
[2019-09-18 00:20:55] Возобновление работы sidekiq…
[2019-09-18 00:20:55] Отключение режима только для чтения…
[2019-09-18 00:20:55] Пометка восстановления как завершённого…
[2019-09-18 00:20:55] Уведомление пользователя ‘maladiction’ об окончании восстановления…
