매우 오래된 버전(2.5.0)의 비표준 설치 환경(혹시 k8s인가요?)에서 운영되던 사이트를 CDCK 호스팅으로 이식하는 작업을 하고 있습니다.
그들이 수동으로 데이터베이스 덤프를 받아서, 복원 프로세스가 제대로 작동하도록 이름을 변경한 뒤, 호스트명 관련 설정을 바로잡기 위해 remap 명령어를 여러 번 실행했습니다. 모든 준비가 끝난 것 같았지만, 포스트를 다시 생성(rebake)했을 때 다음과 같은 이유로 실패하는 포스트들이 많이 나타났습니다:
Jobs::HandledExceptionWrapper: Wrapped RuntimeError: Undeclared attribute type for enum 'status'. Enums must be backed by a database column or declared with an explicit type via `attribute`.
오류는 여기서 발생하는 것 같습니다:
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:17:in `execute'
혹시 파일을 잘못 이름 변경해서 마이그레이션이 누락된 것일까요?
v20200618175923은 그들의 커밋 6a42acbfb72d4ea7dc501ff2240abc8e89f650c6에 해당하는 것으로 예상됩니다.
아래는 전체 백트레이스입니다.
activerecord-7.1.4/lib/active_record/enum.rb:250:in `block in _enum'
activerecord-7.1.4/lib/active_record/attributes.rb:225:in `block in attribute'
activerecord-7.1.4/lib/active_record/attributes.rb:266:in `block in load_schema!'
activerecord-7.1.4/lib/active_record/attributes.rb:265:in `each'
activerecord-7.1.4/lib/active_record/attributes.rb:265:in `load_schema!'
activerecord-7.1.4/lib/active_record/encryption/encryptable_record.rb:127:in `load_schema!'
activerecord-7.1.4/lib/active_record/model_schema.rb:567:in `block in load_schema'
activerecord-7.1.4/lib/active_record/model_schema.rb:564:in `synchronize'
activerecord-7.1.4/lib/active_record/model_schema.rb:564:in `load_schema'
activerecord-7.1.4/lib/active_record/model_schema.rb:445:in `attribute_types'
activerecord-7.1.4/lib/active_record/model_schema.rb:471:in `type_for_attribute'
activerecord-7.1.4/lib/active_record/type_caster/map.rb:16:in `type_for_attribute'
activerecord-7.1.4/lib/arel/table.rb:111:in `type_for_attribute'
activerecord-7.1.4/lib/active_record/table_metadata.rb:18:in `type'
activerecord-7.1.4/lib/active_record/relation/predicate_builder.rb:59:in `build'
activerecord-7.1.4/lib/active_record/relation/predicate_builder.rb:54:in `[]'
activerecord-7.1.4/lib/active_record/relation/predicate_builder.rb:132:in `block in expand_from_hash'
activerecord-7.1.4/lib/active_record/relation/predicate_builder.rb:79:in `each'
activerecord-7.1.4/lib/active_record/relation/predicate_builder.rb:79:in `flat_map'
activerecord-7.1.4/lib/active_record/relation/predicate_builder.rb:79:in `expand_from_hash'
activerecord-7.1.4/lib/active_record/relation/predicate_builder.rb:25:in `build_from_hash'
activerecord-7.1.4/lib/active_record/relation/query_methods.rb:1526:in `build_where_clause'
activerecord-7.1.4/lib/active_record/relation/query_methods.rb:943:in `where!'
activerecord-7.1.4/lib/active_record/associations/association_scope.rb:163:in `apply_scope'
activerecord-7.1.4/lib/active_record/associations/association_scope.rb:66:in `block in last_chain_scope'
activerecord-7.1.4/lib/active_record/associations/association_scope.rb:64:in `each'
activerecord-7.1.4/lib/active_record/associations/association_scope.rb:64:in `last_chain_scope'
activerecord-7.1.4/lib/active_record/associations/association_scope.rb:125:in `add_constraints'
activerecord-7.1.4/lib/active_record/associations/association_scope.rb:29:in `scope'
activerecord-7.1.4/lib/active_record/associations/association_scope.rb:7:in `scope'
activerecord-7.1.4/lib/active_record/associations/association.rb:274:in `association_scope'
activerecord-7.1.4/lib/active_record/associations/association.rb:109:in `scope'
activerecord-7.1.4/lib/active_record/associations/collection_association.rb:295:in `scope'
activerecord-7.1.4/lib/active_record/associations/association.rb:226:in `find_target'
activerecord-7.1.4/lib/active_record/associations/collection_association.rb:270:in `load_target'
activerecord-7.1.4/lib/active_record/associations/collection_proxy.rb:45:in `load_target'
activerecord-7.1.4/lib/active_record/associations/collection_proxy.rb:1012:in `records'
activerecord-7.1.4/lib/active_record/relation/delegation.rb:100:in `each'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:27:in `map'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:27:in `pull_hotlinked_images'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:18:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:17:in `execute'
/var/www/discourse/app/jobs/base.rb:322:in `block (2 levels) in perform'
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:309:in `block in perform'
/var/www/discourse/app/jobs/base.rb:305:in `each'
/var/www/discourse/app/jobs/base.rb:305:in `perform'
sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread
반대로, 사이트는 정상적으로 작동하는 것 같으니, 그냥 업로드해서 여러분에게 전달되면 어떻게 되는지 확인해 보는 것이 나을 수도 있겠네요.