여러분 안녕하세요,
버전이 오래된 discourse 설치 환경(1.6.0)을 최신 버전으로 업그레이드하려고 하고 있습니다.
로컬 개발 서버를 생성하고 실행 중임을 확인한 후, 1.6.0 백업을 해당 서버에 복원했습니다.
복원이 완료된 후 사이트가 좀 이상한 상태가 되었습니다.
관리자 영역의 모든 헤더가 "en.admin."으로 시작합니다.
콘솔에도 오류가 가득합니다.
해결 방법을 찾지 못하고 있으며, 정확히 무엇이 문제인지 잘 모르겠습니다.
프로덕션 환경으로 복원하는 것을 권장합니다. 개발 환경은 올바르게 설정하는 것이 다소 까다롭고, 실제 사이트는 개발 환경에서 실행하지 않으므로 그렇습니다.
커스텀 테마를 사용하고 계신가요? 그렇다면 그 테마가 깨져 있을 가능성이 높습니다.
새로운 Digital Ocean 드롭plet을 시도해 보고 그게 차이를 만드는지 확인해 보겠습니다.
네, 거기에는 커스텀 헤더 등이 있습니다.
백업 전에 그것들을 모두 비활성화해야 할까요?
백업 전에 이를 비활성화하는 것이 좋은 방법입니다.
결국 새로운 DigitalOcean Droplet에 성공적으로 복원할 수 있었습니다. 결국 커스텀 테마를 포기할 필요는 없었습니다.
기존 카테고리를 편집하려고 할 때 발견되는 버그를 제외하고는 거의 모든 것이 정상적으로 작동합니다.
/c/xxxx-xxxx-xxxx/find_by_slug.json을 로드하려고 할 때 서버 오류가 발생합니다.
오류 코드 500 오류
새로운 카테고리를 생성할 수도 없고(500 오류), 카테고리 순서를 변경할 수도 없습니다.
사이트 설정에서 slug 생성 방법을 인코딩으로 설정해 보세요.
아니요, none으로 설정해 보기도 했습니다.
그래도 500 오류가 계속 나요.
기존 주제를 편집할 때도 500 오류가 발생하는데, 약간 다른 방식으로 나타납니다. 상단 부분은 정상적으로 편집되긴 하지만, 여전히 500 오류 메시지가 뜨거든요.
1.6.0에서는 카테고리를 편집하기 위해 전송되는 요청이 다음과 같습니다.
show.json?1674060788449
http://discourse.url.com/c/20/show.json?_=1674060788449
3.1에서는 find_by_slug.json을 사용합니다.
https://discourse.url.com/c/category_name/find_by_slug.json
/logs로 이동하여 해당 오류의 메시지와 백트레이스를 여기에 공유해 주세요.
오류 메시지
NoMethodError (undefined method `default_slow_mode_seconds' for #<Category id: 20, name: "Music Tech Discussion", color: "ee6b65", topic_id: 36276, topic_count: 5648, created_at: "2016-02-26 12:31:28.
정보
Message (25 copies reported)
NoMethodError (undefined method `default_slow_mode_seconds' for #<Category id: 20, name: "Music Tech Discussion", color: "ee6b65", topic_id: 36276, topic_count: 5648, created_at: "2016-02-26 12:31:28.763958000 +0000", updated_at: "2023-01-18 15:06:21.512625000 +0000", user_id: 12, topics_year: 7, topics_month: 0, topics_week: 0, slug: "music-tech-discussion", description: nil, text_color: "FFFFFF", read_restricted: false, auto_close_hours: nil, post_count: 56980, latest_post_id: 228821, latest_topic_id: 36207, position: 1, parent_category_id: nil, posts_year: 24, posts_month: 0, posts_week: 0, email_in: nil, email_in_allow_strangers: false, topics_day: 0, posts_day: 0, allow_badges: true, name_lower: "music tech discussion", auto_close_based_on_last_post: false, topic_template: "", contains_messages: nil, sort_order: nil, sort_ascending: nil, uploaded_logo_id: nil, uploaded_background_id: nil, topic_featured_link_allowed: true, all_topics_wiki: false, show_subcategory_list: false, num_featured_topics: 1, default_view: nil, subcategory_list_style: "rows_with_featured_topics", default_top_period: "all", mailinglist_mirror: false, minimum_required_tags: 0, navigate_to_first_post_after_read: false, search_priority: 0, allow_global_tags: false, reviewable_by_group_id: nil, read_only_banner: nil, default_list_filter: "all", allow_unlimited_owner_edits_on_first_post: false>
Did you mean? default_scopes)
(eval):53:in `_fast_attributes'
app/controllers/application_controller.rb:523:in `serialize_data'
app/controllers/application_controller.rb:532:in `render_serialized'
app/controllers/categories_controller.rb:284:in `find_by_slug'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/100-quiet_logge...
Backtrace
activemodel (7.0.4) lib/active_model/attribute_methods.rb:458:in `method_missing'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:99:in `block in attribute'
(eval):53:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:343:in `as_json'
app/controllers/application_controller.rb:523:in `serialize_data'
app/controllers/application_controller.rb:532:in `render_serialized'
Env
HTTP HOSTS: forumstest.xxx.com
스택 트레이스
activemodel (7.0.4) lib/active_model/attribute_methods.rb:458:in `method_missing'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:99:in `block in attribute'
(eval):53:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:343:in `as_json'
app/controllers/application_controller.rb:523:in `serialize_data'
app/controllers/application_controller.rb:532:in `render_serialized'
app/controllers/categories_controller.rb:284:in `find_by_slug'
actionpack (7.0.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.4) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.4) lib/action_controller/metal/rendering.rb:53:in `process_action'
actionpack (7.0.4) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.4) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
i18n (1.12.0) lib/i18n.rb:322:in `with_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
activesupport (7.0.4) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.4) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.4) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.4) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (7.0.4) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.4) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.4) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.4) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.4) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.4) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.4) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiling_methods.rb:111:in `block in profile_method'
actionpack (7.0.4) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.4) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.4) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.4) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.4) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.4) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
rack (2.2.6.2) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.6.2) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.6.2) lib/rack/head.rb:12:in `call'
actionpack (7.0.4) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
rack (2.2.6.2) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.6.2) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/cookies.rb:696:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.4) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.4) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'
logster (2.11.3) lib/logster/middleware/reporter.rb:43:in `call'
railties (7.0.4) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.4) lib/rails/rack/logger.rb:27:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.6.2) lib/rack/method_override.rb:24:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.6.2) lib/rack/sendfile.rb:110:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiler.rb:393:in `call'
message_bus (4.3.2) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:228:in `call'
railties (7.0.4) lib/rails/engine.rb:530:in `call'
railties (7.0.4) lib/rails/railtie.rb:226:in `public_send'
railties (7.0.4) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.6.2) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.6.2) lib/rack/urlmap.rb:58:in `each'
rack (2.2.6.2) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.1.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.1.0/bin/unicorn:25:in `<main>'
마이그레이션이 누락된 것 같습니다. 리빌드를 시도해 볼 수 있을까요?
./launcher rebuild app?
지금 다시 빌드하고 있으니 잠시 후 업데이트하겠습니다.
그렇게 하니 고쳐졌네요!
정말 감사합니다