إعادة بناء خطأ

I, [2025-07-23T07:29:09.853446 #1]  INFO -- : ` cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!
TypeError: wrong argument type Integer (expected String) (TypeError)

        _write(command)
               ^^^^^^^
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/hiredis-client-0.25.1/lib/redis_client/hiredis_connection.rb:121:in `_write'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/hiredis-client-0.25.1/lib/redis_client/hiredis_connection.rb:121:in `block in write_multi'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/hiredis-client-0.25.1/lib/redis_client/hiredis_connection.rb:120:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/hiredis-client-0.25.1/lib/redis_client/hiredis_connection.rb:120:in `write_multi'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client/connection_mixin.rb:48:in `call_pipelined'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:798:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client/middlewares.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:797:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:759:in `raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:719:in `ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:314:in `call_v'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/client.rb:90:in `call_v'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:152:in `block in send_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `send_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/server.rb:90:in `info'
/var/www/discourse/lib/discourse_redis.rb:38:in `public_send'
/var/www/discourse/lib/discourse_redis.rb:38:in `block in method_missing'
/var/www/discourse/lib/discourse_redis.rb:29:in `ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:38:in `method_missing'
/var/www/discourse/config/initializers/001-redis.rb:9:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:693:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:693:in `block in load_config_initializer'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications.rb:212:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:692:in `load_config_initializer'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:646:in `block (2 levels) in <class:Engine>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:645:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:645:in `block in <class:Engine>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:32:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:32:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:61:in `block in run_initializers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:50:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:50:in `tsort_each_child'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:60:in `run_initializers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/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/lib/rails/application.rb:416:in `require_environment!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/application.rb:567:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)
I, [2025-07-23T07:29:12.543604 #1]  INFO -- : gem install aws-sdk-translate -v 1.35.0 -i /var/www/discourse/plugins/discourse-translator/gems/3.3.8 --no-document --ignore-dependencies --no-user-install
Successfully installed aws-sdk-translate-1.35.0
1 gem installed


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 883 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


الأسباب المحتملة: PERF: switch redis driver to hiredis by SamSaffron · Pull Request #33773 · discourse/discourse · GitHub

إعجاب واحد (1)

شكرا للإبلاغ، سأعود إليك في الوقت الحالي، ولكن هل يمكنك إخبارنا بالمزيد عن كيفية تكوين Redis في بيئتك؟ هل هذا إعداد متعدد الحاويات؟

نعم، إعداد حاويات متعددة. Redis هو حاوية منفصلة.

ما هو الإصدار الذي يعمل عليه؟ أشك في أنه إصدار قديم من redis لا يدعم hiredis.

redis:7.4.3

إعجاب واحد (1)

هل هناك فرصة لمساعدتك والإبلاغ عن هذا إلى https://github.com/redis-rb/redis-client/issues؟

من الناحية المثالية، سيكون التكاثر شيئًا يقوم بما يلي:

  1. تشغيل حاوية Docker الخاصة بـ Redis الخاص بك. (ومشاركتها مع byroot لتسهيل التصحيح)
  2. تشغيل شيء مثل هذا مقابل التكوين الخاص بك:
require 'hiredis-client'
require 'redis-client'
require 'redis'
Redis.new(... <- عنوان IP الخاص بك وما إلى ذلك).info

يجب أن ينفجر .info، وهذا ما كنا نقوم بتشغيله.

أوصي بتجنب إضافة البيئة لأنك ستنسى أمرها في النهاية
بدلاً من ذلك، قم ببساطة بإعادة البناء، وقد تم التراجع عن هذا الأمر في الوقت الحالي