更新失败:列 "require_message" 不存在

嗨,

我运行 Discourse 已经几年了,一直没有问题。今天我尝试使用 ./launcher rebuild app 进行更新,但失败了。能否请人帮我解读一下下面日志中的错误。

谢谢

sudo ./launcher rebuild app
WARNING: Docker version 20.10.18 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20240825-0027: Pulling from discourse/base
Digest: sha256:6de68cb49198b5281f79ed9401b3fe818c854d220dcf0238549fe2f2adb19146
Status: Image is up to date for discourse/base:2.0.20240825-0027
docker.io/discourse/base:2.0.20240825-0027
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-11-07T19:34:23.535124 #1]  INFO -- : Reading from stdin
I, [2024-11-07T19:34:23.558469 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown:
I, [2024-11-07T19:34:23.571625 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2024-11-07T19:34:23.581705 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2024-11-07T19:34:23.592389 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown:
I, [2024-11-07T19:34:23.602698 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown:
I, [2024-11-07T19:34:23.604250 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data'                                                        in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-07T19:34:23.605604 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postg                                                       resql.conf
I, [2024-11-07T19:34:23.606565 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/p                                                       ostgresql/13/main/postgresql.conf
I, [2024-11-07T19:34:23.608107 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13                                                       /main/postgresql.conf
I, [2024-11-07T19:34:23.609566 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.c                                                       onf
I, [2024-11-07T19:34:23.612994 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_tex                                                       t_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-07T19:34:23.613568 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /et                                                       c/postgresql/13/main/postgresql.conf
I, [2024-11-07T19:34:23.614631 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/post                                                       gresql/13/main/postgresql.conf
I, [2024-11-07T19:34:23.617876 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_dura                                                       tion_statement in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-07T19:34:23.621489 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/                                                       postgresql/13/main/pg_hba.conf
I, [2024-11-07T19:34:23.622082 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/p                                                       g_hba.conf
I, [2024-11-07T19:34:23.627193 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/p                                                       g_hba.conf
I, [2024-11-07T19:34:23.628520 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi

I, [2024-11-07T19:34:29.881880 #1]  INFO -- : Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

I, [2024-11-07T19:34:29.882186 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres                                                       :ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2024-11-07T19:34:29.895227 #1]  INFO -- : File > /usr/local/bin/create_db  chmod: +x  chown:
I, [2024-11-07T19:34:29.909249 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2024-11-07T19:34:29.915646 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown:
I, [2024-11-07T19:34:29.916056 #1]  INFO -- : > sleep 5
2024-11-07 19:34:29.939 UTC [39] LOG:  starting PostgreSQL 13.16 (Debian 13.16-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-1                                                       4) 12.2.0, 64-bit
2024-11-07 19:34:29.939 UTC [39] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-11-07 19:34:29.940 UTC [39] LOG:  listening on IPv6 address "::", port 5432
2024-11-07 19:34:29.946 UTC [39] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-11-07 19:34:29.957 UTC [48] LOG:  database system was shut down at 2024-11-07 19:34:11 UTC
2024-11-07 19:34:29.975 UTC [39] LOG:  database system is ready to accept connections
I, [2024-11-07T19:34:34.920455 #1]  INFO -- :
I, [2024-11-07T19:34:34.920764 #1]  INFO -- : > /usr/local/bin/create_db
2024-11-07 19:34:35.054 UTC [58] postgres@postgres ERROR:  database "discourse" already exists
2024-11-07 19:34:35.054 UTC [58] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
2024-11-07 19:34:35.183 UTC [61] postgres@discourse ERROR:  role "discourse" already exists
2024-11-07 19:34:35.183 UTC [61] postgres@discourse STATEMENT:  create user discourse;
ERROR:  role "discourse" already exists
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  version "0.7.4" of extension "vector" is already installed
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  version "0.7.4" of extension "vector" is already installed
I, [2024-11-07T19:34:36.252292 #1]  INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
UPDATE 0

I, [2024-11-07T19:34:36.252684 #1]  INFO -- : > echo postgres installed!
I, [2024-11-07T19:34:36.256493 #1]  INFO -- : postgres installed!

I, [2024-11-07T19:34:36.265063 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown:
I, [2024-11-07T19:34:36.272729 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown:
I, [2024-11-07T19:34:36.281351 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown:
I, [2024-11-07T19:34:36.283273 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redis.conf
I, [2024-11-07T19:34:36.284352 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redis/redis.conf
I, [2024-11-07T19:34:36.285312 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2024-11-07T19:34:36.293884 #1]  INFO -- :
I, [2024-11-07T19:34:36.295010 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2024-11-07T19:34:36.296468 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/redis.conf
I, [2024-11-07T19:34:36.298169 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2024-11-07T19:34:36.299844 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2024-11-07T19:34:36.301569 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2024-11-07T19:34:36.303376 #1]  INFO -- : > echo redis installed
I, [2024-11-07T19:34:36.307405 #1]  INFO -- : redis installed

I, [2024-11-07T19:34:36.307822 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2024-11-07T19:34:36.316259 #1]  INFO -- : logfile ""

I, [2024-11-07T19:34:36.316711 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-11-07T19:34:36.321345 #1]  INFO -- : > sleep 10
107:C 07 Nov 2024 19:34:36.335 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
107:C 07 Nov 2024 19:34:36.335 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=107, just started
107:C 07 Nov 2024 19:34:36.335 # Configuration loaded
107:M 07 Nov 2024 19:34:36.336 * monotonic clock: POSIX clock_gettime
107:M 07 Nov 2024 19:34:36.337 * Running mode=standalone, port=6379.
107:M 07 Nov 2024 19:34:36.337 # Server initialized
107:M 07 Nov 2024 19:34:36.338 * Loading RDB produced by version 7.0.7
107:M 07 Nov 2024 19:34:36.338 * RDB age 25 seconds
107:M 07 Nov 2024 19:34:36.338 * RDB memory usage when created 8.18 Mb
107:M 07 Nov 2024 19:34:36.369 * Done loading RDB, keys loaded: 2512, keys expired: 0.
107:M 07 Nov 2024 19:34:36.369 * DB loaded from disk: 0.031 seconds
107:M 07 Nov 2024 19:34:36.369 * Ready to accept connections
I, [2024-11-07T19:34:46.328108 #1]  INFO -- :
I, [2024-11-07T19:34:46.328719 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2024-11-07T19:34:46.335431 #1]  INFO -- : thpoff is installed!

I, [2024-11-07T19:34:46.335870 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail                                                        is not configured!"; exit 1; end'
I, [2024-11-07T19:34:46.478257 #1]  INFO -- :
I, [2024-11-07T19:34:46.478397 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Dom                                                       ain is not configured!"; exit 1; end'
I, [2024-11-07T19:34:46.632162 #1]  INFO -- :
I, [2024-11-07T19:34:46.632306 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must                                                        have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2024-11-07T19:34:46.792566 #1]  INFO -- :
I, [2024-11-07T19:34:46.792816 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2024-11-07T19:34:46.799857 #1]  INFO -- :
I, [2024-11-07T19:34:46.806261 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown:
I, [2024-11-07T19:34:46.814523 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown:
I, [2024-11-07T19:34:46.824323 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown:
I, [2024-11-07T19:34:46.833947 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown:
I, [2024-11-07T19:34:46.842792 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown:
I, [2024-11-07T19:34:46.850581 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown:
I, [2024-11-07T19:34:46.850759 #1]  INFO -- : Replacing # postgres with if [ -f /root/install_postgres ]; then
  /root/install_postgres
  rm /root/install_postgres
fi
sv start postgres || exit 1
 in /etc/service/unicorn/run
I, [2024-11-07T19:34:46.853568 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
Updating files: 100% (34680/34680), done.
I, [2024-11-07T19:34:57.445426 #1]  INFO -- : HEAD is now at 274e18622 FIX: Video uploads sometimes hang indefinitely (#28523)

I, [2024-11-07T19:34:57.445566 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2024-11-07T19:34:57.805189 #1]  INFO -- :
I, [2024-11-07T19:34:57.805321 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
From https://github.com/discourse/discourse
 - [deleted]             (none)     -> origin/0-a-gjs-ace
 - [deleted]             (none)     -> origin/better-respect-End-key-in-topics
 - [deleted]             (none)     -> origin/category-experts-approved-webhook-event
 - [deleted]             (none)     -> origin/chat-sound-respects-indicator-pref
 - [deleted]             (none)     -> origin/d-button-noautoclass
 - [deleted]             (none)     -> origin/dependabot/bundler/omniauth-google-oauth2-1.1.2
 - [deleted]             (none)     -> origin/dependabot/bundler/sass-embedded-1.77.8
 - [deleted]             (none)     -> origin/dependabot/bundler/sassc-embedded-1.77.8
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/ember-cli-deprecation-workflow-3.0.2
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/ember/test-helpers-4.0.1
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/eslint-9.7.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/sass-1.77.8
 - [deleted]             (none)     -> origin/detect-default-readonly
 - [deleted]             (none)     -> origin/dev/add-skeleton-of-section-landing-page-and-items
 - [deleted]             (none)     -> origin/dev/remove-header-widgets
 - [deleted]             (none)     -> origin/ensure_default_timeouts_for_net_http
 - [deleted]             (none)     -> origin/feature/site-text-result-selected-lang
 - [deleted]             (none)     -> origin/fix/add-user-to-user-directory-when-activated
 - [deleted]             (none)     -> origin/fix_default_value_validation_fail
 - [deleted]             (none)     -> origin/issue/fix-bookmark-clearing-reminder
 - [deleted]             (none)     -> origin/loic-drop-compiled-js-column
 - [deleted]             (none)     -> origin/mt/converter
 - [deleted]             (none)     -> origin/mt/uploads-command
 - [deleted]             (none)     -> origin/native-class-components-2
 - [deleted]             (none)     -> origin/native-class-components-3
 - [deleted]             (none)     -> origin/notifications_id_bigint
 - [deleted]             (none)     -> origin/prevent-desktop-notifications-on-mobile
 - [deleted]             (none)     -> origin/rails_7_1_upgrade
 - [deleted]             (none)     -> origin/tobiaseigen-patch-3
 - [deleted]             (none)     -> origin/tobiaseigen-patch-5
 - [deleted]             (none)     -> origin/update-composer-media-optimization-requirements
 - [deleted]             (none)     -> origin/ux/admin-plugins-ui-guidelines
   274e18622..484006056  main                    -> origin/main
 * [new branch]          0-a-dl                  -> origin/0-a-dl
 * [new branch]          add-live-reload-disable-option -> origin/add-live-reload-disable-option
 * [new branch]          add-shift-detect        -> origin/add-shift-detect
 * [new branch]          add-verbose-logging-for-google-oauth -> origin/add-verbose-logging-for-google-oauth
 * [new branch]          auto-grid-images        -> origin/auto-grid-images
 * [new branch]          chat-uppy-upload        -> origin/chat-uppy-upload
 * [new branch]          chunk-size              -> origin/chunk-size
 * [new branch]          cleanup-mobile-topic-footer-area -> origin/cleanup-mobile-topic-footer-area
 + 7f254be61...4264fe0d6 coco/generic-importer   -> origin/coco/generic-importer  (forced update)
 * [new branch]          dependabot/bundler/omniauth-google-oauth2-1.2.0 -> origin/dependabot/bundler/omniauth-google-oauth2-1.2.0
 * [new branch]          dependabot/bundler/rackup-1.0.1 -> origin/dependabot/bundler/rackup-1.0.1
 * [new branch]          dependabot/bundler/sass-embedded-1.80.6 -> origin/dependabot/bundler/sass-embedded-1.80.6
 * [new branch]          dependabot/bundler/sassc-embedded-1.80.1 -> origin/dependabot/bundler/sassc-embedded-1.80.1
 * [new branch]          dependabot/npm_and_yarn/glimmer/component-2.0.0 -> origin/dependabot/npm_and_yarn/glimmer/component-2.0.0
 * [new branch]          dependabot/npm_and_yarn/sass-1.80.6 -> origin/dependabot/npm_and_yarn/sass-1.80.6
 * [new branch]          dev-faster-tests        -> origin/dev-faster-tests
 * [new branch]          dev-nginx-conf          -> origin/dev-nginx-conf
 * [new branch]          dev/automation-scriptable-add-with-class -> origin/dev/automation-scriptable-add-with-class
 * [new branch]          dev/composer_args_simplification -> origin/dev/composer_args_simplification
 * [new branch]          dev/convert-admin-emojis-ui-to-new-layout -> origin/dev/convert-admin-emojis-ui-to-new-layout
 * [new branch]          dev/glimmer-post-menu   -> origin/dev/glimmer-post-menu
 * [new branch]          dev/port-outlet-wrapper-to-stable -> origin/dev/port-outlet-wrapper-to-stable
 * [new branch]          dev/refactor-themes-controller-to-services-part-1 -> origin/dev/refactor-themes-controller-to-services-part-1
 * [new branch]          dev/remap-enhancements  -> origin/dev/remap-enhancements
 * [new branch]          dev/remove-deprecated-respect-plugin-positional-argument -> origin/dev/remove-deprecated-respect-plugin-positional-argument
 * [new branch]          dev/use-new-filestore-download-method -> origin/dev/use-new-filestore-download-method
 + 59bf25001...8e5e61375 devcontainer            -> origin/devcontainer  (forced update)
 * [new branch]          drawer-composer-positioning -> origin/drawer-composer-positioning
 * [new branch]          events-ui               -> origin/events-ui
 * [new branch]          feature-paginate-categories -> origin/feature-paginate-categories
 * [new branch]          feature/add-user-to-topic_tags_changed-event -> origin/feature/add-user-to-topic_tags_changed-event
 + a0042745d...6d5864113 feature/bulk-dismiss-buttons-confirmation -> origin/feature/bulk-dismiss-buttons-confirmation  (forced update)
 * [new branch]          feature/custom-fields-for-existing-users -> origin/feature/custom-fields-for-existing-users
 * [new branch]          fix-safari-below-18-detection -> origin/fix-safari-below-18-detection
 * [new branch]          fix/resume_editing_pm   -> origin/fix/resume_editing_pm
 * [new branch]          glint                   -> origin/glint
 * [new branch]          issue/fix-plugin-actions-outlet -> origin/issue/fix-plugin-actions-outlet
 * [new branch]          loic-enable-rspec-rule  -> origin/loic-enable-rspec-rule
 * [new branch]          loic-experiment-model-value-type -> origin/loic-experiment-model-value-type
 * [new branch]          loic-persist-step-services -> origin/loic-persist-step-services
 + 26e2ddbde...10b203c30 loic-rails-7.2          -> origin/loic-rails-7.2  (forced update)
 * [new branch]          mt/idb                  -> origin/mt/idb
 * [new branch]          perf-chat-auto-join-take-42 -> origin/perf-chat-auto-join-take-42
 * [new branch]          post-badge-poc          -> origin/post-badge-poc
 * [new branch]          redesign-permalinks     -> origin/redesign-permalinks
 * [new branch]          render-glimmer-granular -> origin/render-glimmer-granular
 * [new branch]          revert-28587-revert-28321-dev/remove-create_post_for_category_and_tag_changes-setting -> origin/revert-28587-revert-28321-dev/remove-create_post_for_category_and_tag_changes-sett
 * [new branch]          safari-hacks-sayonara   -> origin/safari-hacks-sayonara
 * [new branch]          sidebar-a11y-viewport-zoom -> origin/sidebar-a11y-viewport-zoom
 * [new branch]          sort-chat-channels-with-unread-threads -> origin/sort-chat-channels-with-unread-threads
   d3ad2ecda..6cd6ed5b8  stable                  -> origin/stable
 * [new branch]          tabs                    -> origin/tabs
 * [new branch]          tag-name-transformer    -> origin/tag-name-transformer
 * [new branch]          testing_debian_12       -> origin/testing_debian_12
   274e18622..484006056  tests-passed            -> origin/tests-passed
 * [new branch]          virtual-keyboard-fix-login -> origin/virtual-keyboard-fix-login
 * [new branch]          whats-new-notify-plugins -> origin/whats-new-notify-plugins
 t [tag update]          beta                    -> beta
 t [tag update]          latest-release          -> latest-release
 * [new tag]             v3.3.1                  -> v3.3.1
 * [new tag]             v3.3.2                  -> v3.3.2
 * [new tag]             v3.4.0.beta1            -> v3.4.0.beta1
 * [new tag]             v3.4.0.beta2            -> v3.4.0.beta2
I, [2024-11-07T19:34:58.945416 #1]  INFO -- :
I, [2024-11-07T19:34:58.945546 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout tests-passed
  fi
'
Switched to a new branch 'tests-passed'
I, [2024-11-07T19:35:04.538466 #1]  INFO -- : branch 'tests-passed' set up to track 'origin/tests-passed'.

I, [2024-11-07T19:35:04.538640 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2024-11-07T19:35:04.565429 #1]  INFO -- :
I, [2024-11-07T19:35:04.565594 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2024-11-07T19:35:04.571229 #1]  INFO -- :
I, [2024-11-07T19:35:04.571407 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2024-11-07T19:35:04.577468 #1]  INFO -- :
I, [2024-11-07T19:35:04.577635 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2024-11-07T19:35:04.583818 #1]  INFO -- :
I, [2024-11-07T19:35:04.583984 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2024-11-07T19:35:04.589677 #1]  INFO -- :
I, [2024-11-07T19:35:04.589812 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2024-11-07T19:35:04.595224 #1]  INFO -- :
I, [2024-11-07T19:35:04.595361 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2024-11-07T19:35:04.601289 #1]  INFO -- :
I, [2024-11-07T19:35:04.601434 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2024-11-07T19:35:04.610769 #1]  INFO -- :
I, [2024-11-07T19:35:04.610903 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/di
I, [2024-11-07T19:35:04.619848 #1]  INFO -- :
I, [2024-11-07T19:35:04.619981 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2024-11-07T19:35:04.636483 #1]  INFO -- :
I, [2024-11-07T19:35:04.637391 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2024-11-07T19:35:04.663135 #1]  INFO -- :
I, [2024-11-07T19:35:04.663283 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2024-11-07T19:35:04.674349 #1]  INFO -- :
I, [2024-11-07T19:35:04.674500 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2024-11-07T19:35:04.687279 #1]  INFO -- :
I, [2024-11-07T19:35:04.687417 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2024-11-07T19:35:05.168181 #1]  INFO -- :
I, [2024-11-07T19:35:05.168344 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2024-11-07T19:35:05.179835 #1]  INFO -- :
I, [2024-11-07T19:35:05.180335 #1]  INFO -- : Replacing # redis with if [ ! -d /shared/redis_data ]; then
  install -d -m 0755 -o redis -g redis /shared/redis_data
fi
sv start redis || exit 1 in /etc/service/unicorn/run
I, [2024-11-07T19:35:05.183224 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2024-11-07T19:35:06.292926 #1]  INFO -- :
I, [2024-11-07T19:35:06.302691 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2024-11-07T19:35:06.323863 #1]  INFO -- :
I, [2024-11-07T19:35:06.324325 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2024-11-07T19:35:06.345166 #1]  INFO -- :
I, [2024-11-07T19:35:06.345559 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2024-11-07T19:35:06.360681 #1]  INFO -- :
I, [2024-11-07T19:35:06.361834 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2024-11-07T19:35:06.362793 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2024-11-07T19:35:06.363496 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2024-11-07T19:35:06.366234 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2024-11-07T19:35:06.367840 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2024-11-07T19:35:06.368440 #1]  INFO -- : > echo "done configuring web"
I, [2024-11-07T19:35:06.381488 #1]  INFO -- : done configuring web

I, [2024-11-07T19:35:06.381959 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2024-11-07T19:35:08.003914 #1]  INFO -- : Successfully installed bundler-2.5.18
1 gem installed

I, [2024-11-07T19:35:08.004091 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2024-11-07T19:35:22.478869 #1]  INFO -- :
I, [2024-11-07T19:35:22.479564 #1]  INFO -- : > cd /var/www/discourse && if [ -f yarn.lock ]; then
  if [ -d node_modules/.pnpm ]; then
    echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  fi
  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
  su discourse -c 'CI=1 pnpm install --frozen-lockfile'
fi
I, [2024-11-07T19:36:21.891214 #1]  INFO -- : Detected yarn-managed node_modules. Performing one-time cleanup...
cleanup done
Scope: all 19 workspace projects
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +1828
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1828, reused 0, downloaded 0, added 0
Progress: resolved 1828, reused 0, downloaded 16, added 0
Progress: resolved 1828, reused 0, downloaded 32, added 21
Progress: resolved 1828, reused 0, downloaded 119, added 156
Progress: resolved 1828, reused 0, downloaded 190, added 260
Progress: resolved 1828, reused 0, downloaded 248, added 311
Progress: resolved 1828, reused 0, downloaded 326, added 393
Progress: resolved 1828, reused 0, downloaded 363, added 428
Progress: resolved 1828, reused 0, downloaded 371, added 438
Progress: resolved 1828, reused 0, downloaded 394, added 457
Progress: resolved 1828, reused 0, downloaded 472, added 538
Progress: resolved 1828, reused 0, downloaded 539, added 606
Progress: resolved 1828, reused 0, downloaded 582, added 651
Progress: resolved 1828, reused 0, downloaded 644, added 711
Progress: resolved 1828, reused 0, downloaded 689, added 756
Progress: resolved 1828, reused 0, downloaded 705, added 768
Progress: resolved 1828, reused 0, downloaded 894, added 965
Progress: resolved 1828, reused 0, downloaded 927, added 994
Progress: resolved 1828, reused 0, downloaded 1014, added 1080
Progress: resolved 1828, reused 0, downloaded 1068, added 1140
Progress: resolved 1828, reused 0, downloaded 1123, added 1189
Progress: resolved 1828, reused 0, downloaded 1132, added 1196
Progress: resolved 1828, reused 0, downloaded 1172, added 1237
Progress: resolved 1828, reused 0, downloaded 1173, added 1238
Progress: resolved 1828, reused 0, downloaded 1179, added 1248
Progress: resolved 1828, reused 0, downloaded 1191, added 1254
Progress: resolved 1828, reused 0, downloaded 1253, added 1319
Progress: resolved 1828, reused 0, downloaded 1380, added 1445
Progress: resolved 1828, reused 0, downloaded 1399, added 1466
Progress: resolved 1828, reused 0, downloaded 1434, added 1503
Progress: resolved 1828, reused 0, downloaded 1493, added 1560
Progress: resolved 1828, reused 0, downloaded 1508, added 1578
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: /home/discourse/.local/share/pnpm/store/v3
  Virtual store is at:             node_modules/.pnpm
Progress: resolved 1828, reused 0, downloaded 1512, added 1580
Progress: resolved 1828, reused 0, downloaded 1513, added 1580
Progress: resolved 1828, reused 0, downloaded 1527, added 1591
Progress: resolved 1828, reused 0, downloaded 1546, added 1612
Progress: resolved 1828, reused 0, downloaded 1605, added 1673
Progress: resolved 1828, reused 0, downloaded 1660, added 1731
Progress: resolved 1828, reused 0, downloaded 1718, added 1792
Progress: resolved 1828, reused 0, downloaded 1741, added 1828, done
.../core-js@3.33.0/node_modules/core-js postinstall$ node -e "try{require('./postinstall')}catch(e){}"
.../core-js@2.6.12/node_modules/core-js postinstall$ node -e "try{require('./postinstall')}catch(e){}"
.../node_modules/@swc/core postinstall$ node postinstall.js
.../esbuild@0.24.0/node_modules/esbuild postinstall$ node install.js
.../lefthook@1.8.2/node_modules/lefthook postinstall$ node postinstall.js
.../core-js@3.33.0/node_modules/core-js postinstall: Done
.../core-js@2.6.12/node_modules/core-js postinstall: Done
.../lefthook@1.8.2/node_modules/lefthook postinstall: Done
.../node_modules/@swc/core postinstall: Done
.../esbuild@0.24.0/node_modules/esbuild postinstall: Done

devDependencies:
+ @babel/plugin-proposal-decorators 7.25.9
+ @discourse/lint-configs 1.4.2
+ @discourse/moment-timezone-names-translations 1.0.0
+ @fortawesome/fontawesome-free 6.6.0
+ @glint/core 1.5.0
+ @glint/environment-ember-loose 1.5.0
+ @glint/environment-ember-template-imports 1.5.0
+ @glint/template 1.5.0
+ @mixer/parallel-prettier 2.0.3
+ @swc/core 1.9.1
+ chart.js 3.5.1
+ chartjs-plugin-datalabels 2.2.0
+ chrome-launcher 1.1.2
+ chrome-remote-interface 0.33.2
+ concurrently 9.1.0
+ ember-template-lint 6.0.0
+ esbuild 0.24.0
+ eslint 8.57.0
+ jsdoc 4.0.4
+ lefthook 1.8.2
+ licensee 11.1.0
+ lint-to-the-future 2.2.0
+ lint-to-the-future-ember-template 1.2.0
+ lint-to-the-future-eslint 2.2.0
+ magnific-popup 1.1.0
+ moment 2.30.1
+ moment-timezone 0.5.45
+ pikaday 1.8.2
+ prettier 2.8.8
+ puppeteer-core 23.7.0
+ squoosh 2.0.0
+ terser 5.36.0
+ typescript 5.6.3

Done in 58.8s

我的更新中出现了错误

```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

请帮我修复它。

1 个赞

这似乎是问题所在。

这是它被添加的地方。您当前容器的提交哈希是什么?(如果它没有运行,您应该能够执行 ./launcher start app 来重新启动它。)

1 个赞

您好 @pfaffman

感谢您如此迅速的回复。在等待期间,我设法解决了过时的 Docker 版本问题,但仍然收到相同的错误。

我尝试了 ./launcher start app,应用程序启动了,但 Web 界面仍然无法加载。所以我真的不确定我当时在哪个提交。我记得看到我处于 3.1 beta 某个小版本,我猜是这样的。我不确定我使用的是哪个发布频道,可能是遵循安装说明时的默认设置。

所以我不知道该怎么办……我能用之前的提交重建吗?

1 个赞

我也不知道该怎么告诉你。我想知道是不是因为其他提交添加/删除了迁移,导致你处于一个损坏的状态。我现在没有好的建议。

我猜你的数据库迁移到了比你的容器中的 Discourse 版本更新的版本,你需要一个成功的构建来修复它。

也许你可以手动添加该列,然后重试。或者,也许可以进行备份,启动一个新站点,然后将备份恢复到那里。

嗯……我不太期待那样做……幸运的是,我有每日备份。

我确实注意到

 docker images -a
REPOSITORY            TAG                 IMAGE ID       CREATED             SIZE
local_discourse/app   latest              5692a781232c   大约一小时前        4.21GB
discourse/base        2.0.20240825-0027   9dc96b6115cb   2个月前         3.38GB
<none>                <none>              b492a384cb07   4个月前         4.18GB
discourse/base        2.0.20240602-0023   814acddaf6fd   5个月前         3.14GB

我能让启动器启动其中一个吗?还是最好擦除并重建?如果可以,我该怎么做?

如果您可以恢复到最新的备份,那么我会启动一个新服务器并在那里恢复备份。

如果启动新服务器很困难,那么危险的做法是删除 postgres 目录,然后重建和恢复。如果您确认备份可以在另一台服务器上恢复,那么这种方法会更安全一些,但听起来您的操作系统可能已经过了支持的生命周期。

我启动了一个新的虚拟机,安装了 Discourse 并尝试恢复备份。我遇到了同样的错误:

[2024-11-07 22:06:11] 正在迁移数据库...
[2024-11-07 22:06:18] EXCEPTION: /var/www/discourse/lib/discourse.rb:139:in `exec': 数据库迁移失败。
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column "require_message" does not exist (ActiveRecord::StatementInvalid)
LINE 1: ..._key, description, notify_type, auto_action_type, require_me...

现在我该怎么办?

我回来了。切换到稳定分支并进行了恢复。

我也遇到了此更新中的错误。我该怎么办?

也遇到了这个问题。

你是如何解决这个问题的?

如果您使用与 @TheStealth 相同的解决方案,则需要编辑 app.yml 文件并重新构建

cd /var/discourse
nano containers/app.yml

在第 38 行附近,将此更改为:

  ## 此容器应使用哪个 Git 版本? (默认值: tests-passed)
  #version: tests-passed

更改为:

  ## 此容器应使用哪个 Git 版本? (默认值: tests-passed)
  version: stable

保存文件,然后:

./launcher rebuild app

根据错误消息,我假设它与此页面有关:

/admin/config/flags

我将删除您过去可能创建的任何自定义标志。然后再次尝试在 tests-passed 分支上重新构建。

1 个赞

非常感谢。我的 discourse 又可以运行了。

不过我在这里检查过了,并没有我们创建的东西。

你还有其他想法吗?

我有一个想法,但不确定它是否奏效。

如果手动添加缺失的列,然后重新构建,怎么样?

如何做到这一点?

我几乎可以肯定这是一个 bug。我怀疑这与某个提交中移除了一个迁移有关,导致后续的迁移因 require_message 不在表中而失败,类似于 Restore failing with missing chat_mention function

1 个赞

我确认此更新导致我的 discourse 崩溃,我不得不从备份中恢复。但是,如预期的那样,Docker_manager 更新工作正常。

我想我们只能等待另一个更新来修复所有问题。

2 个赞

对我来说也坏了。多亏了 Steven,我将 discourse 改为了版本:stable 并重建了应用程序。现在可以正常工作了。

您好 @TheStealth

感谢您报告此 bug,并对给您带来的不便表示歉意。

此问题应已通过此 PR 修复 :crossed_fingers:

2 个赞