حاولت للتو إجراء التحديث إلى ما أعتقد أنه الإصدار التجريبي 9 عبر الواجهة الرسومية. للأسف، أدى ذلك إلى حدوث خطأ، لذلك قمت بتشغيل “rebuild app”.
للأسف، يؤدي هذا أيضًا إلى حدوث خطأ، ولست متأكدًا تمامًا مما يمكنني فعله الآن. تنتهي العملية بأكملها دائمًا بـ:
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)
I, [2025-08-20T08:47:30.655625 #1] INFO -- :
I, [2025-08-20T08:47:30.655914 #1] INFO -- : Terminating async processes
I, [2025-08-20T08:47:30.655932 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main pid: 47
I, [2025-08-20T08:47:30.655954 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 114
2025-08-20 08:47:30.656 UTC [47] LOG: received fast shutdown request
114:signal-handler (1755679650) Received SIGTERM scheduling shutdown...
114:M 20 Aug 2025 08:47:30.659 # User requested shutdown...
114:M 20 Aug 2025 08:47:30.659 * Saving the final RDB snapshot before exiting.
2025-08-20 08:47:30.667 UTC [47] LOG: aborting any active transactions
2025-08-20 08:47:30.671 UTC [47] LOG: background worker "logical replication launcher" (PID 61) exited with exit code 1
2025-08-20 08:47:30.671 UTC [56] LOG: shutting down
2025-08-20 08:47:30.672 UTC [56] LOG: checkpoint starting: shutdown immediate
2025-08-20 08:47:30.691 UTC [56] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.014 s, sync=0.002 s, total=0.020 s; sync files=3, longest=0.001 s, average=0.001 s; distance=5 kB, estimate=5 kB
114:M 20 Aug 2025 08:47:30.728 * DB saved on disk
114:M 20 Aug 2025 08:47:30.728 # Redis is now ready to exit, bye bye...
2025-08-20 08:47:30.731 UTC [47] LOG: database system is shut down
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 809 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
0155b0ee2e7b8a2a7481eed0f002871675973ab2295296f71b2c366b875f12cf
رأيت هذا للتو في قسم اختبار البريد الإلكتروني عند تشغيل discourse-doctor:
اسم المكون الإضافي هو 'discourse-topic-voting'، ولكن دليل المكون الإضافي يسمى 'discourse-feature-voting'
/var/www/discourse/plugins/discourse-topic-voting/plugin.rb:22: warning: constant DiscourseTopicVoting::PLUGIN_NAME already initialized
/var/www/discourse/plugins/discourse-feature-voting/plugin.rb:22: warning: previous definition of PLUGIN_NAME was here
rake aborted!
ArgumentError: Invalid route name, already in use: 'category_none_votes' (ArgumentError)
You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here:
https://guides.rubyonrails.org/routing.html#restricting-the-routes-created
raise ArgumentError, "Invalid route name, already in use: '#{name}' \n" \
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:649:in `add_route'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:2062:in `add_route'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:2033:in `decomposed_match'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:1997:in `block in map_match'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:1991:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:1991:in `map_match'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:1719:in `match'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:768:in `map_method'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:711:in `get'
/var/www/discourse/config/routes.rb:1346:in `block (4 levels) in <main>'
/var/www/discourse/config/routes.rb:1345:in `each'
/var/www/discourse/config/routes.rb:1345:in `block (3 levels) in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:903:in `scope'
/var/www/discourse/config/routes.rb:1337:in `block (2 levels) in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:903:in `scope'
/var/www/discourse/config/routes.rb:14:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:479:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:479:in `eval_block'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:461:in `draw'
/var/www/discourse/config/routes.rb:10:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/routes_reloader.rb:64:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/routes_reloader.rb:64:in `block in load_paths'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/routes_reloader.rb:64:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/routes_reloader.rb:64:in `load_paths'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/routes_reloader.rb:25:in `reload!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/routes_reloader.rb:52:in `block in updater'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/file_update_checker.rb:85:in `execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/routes_reloader.rb:34:in `execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/routes_reloader.rb:39:in `execute_unless_loaded'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application/finisher.rb:179:in `block in <module:Finisher>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/initializable.rb:32:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/initializable.rb:32:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/initializable.rb:60:in `run_initializers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application.rb:440:in `initialize!'
/var/www/discourse/config/environment.rb:7:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.3/lib/zeitwerk/core_ext/kernel.rb:34:in `require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application.rb:416:in `require_environment!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2.1/lib/rails/application.rb:567:in `block in run_tasks_blocks'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => emails:test => environment
(See full trace by running task with --trace)
discourse-feature-voting هو الاسم القديم (جداً) لمكون topic-voting الإضافي الذي تم تضمينه الآن في نواة Discourse. إذا قمت بإزالة السطر feature-voting من ملف app.yml الخاص بك ثم قمت بإعادة البناء، فمن المفترض أن تعمل الأمور بشكل أفضل