J’ai également rencontré ce problème lors de la reconstruction. La seule façon de remettre le site en ligne a été de revenir à un commit précédent. Après être revenu à un commit fonctionnel, j’ai trouvé ce sujet et exécuté les requêtes. J’espère que les résultats sont toujours utiles pour identifier la cause première.
Merci d’avoir exécuté ces requêtes @Don - vous avez confirmé la cause première
Vos résultats montrent exactement ce que nous soupçonnions
Vous avez un schéma backup avec une copie de user_options
Cette table a toujours la valeur par défaut précédente (column_default = false)
La ligne backup est apparue avantpublic dans les résultats de la requête
Lorsque la migration a supprimé la valeur par défaut sur public.user_options, elle n’a pas touché backup.user_options. Ensuite, mark_readonly a interrogé information_schema.columns sans filtrer par schéma, a obtenu la ligne backup en premier (qui avait toujours la valeur par défaut) et a échoué
La correction consiste simplement à ajouter table_schema = 'public' à la requête afin qu’elle ne vérifie que le schéma sur lequel les migrations opèrent réellement.
Je suis vraiment désolé, j’ai rencontré un problème avant d’entrer dans la base de données et n’ai pas pu fournir les résultats de la requête. Heureusement, Don a déjà fait un retour.
discourse@jerry-app:/var/www/discourse$ bin/rails db
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:71:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'debug/prelude'. (Bundler::GemRequireError)
Gem Load Error is: cannot load such file -- debug/prelude
Backtrace for gem load error is:
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:63:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `each'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `block in require'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `each'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `require'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler.rb:215:in `require'
/var/www/discourse/config/application.rb:55:in `<main>'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:15:in `require_application!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/environment_argument.rb:31:in `require_application!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:19:in `boot_application!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands/dbconsole/dbconsole_command.rb:83:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:178:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor.rb:538:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:73:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:65:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:143:in `with_argv'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:63:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
Bundler Error Backtrace:
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:62:in `block (2 levels) in require'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `each'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `block in require'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `each'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `require'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler.rb:215:in `require'
from /var/www/discourse/config/application.rb:55:in `<main>'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:15:in `require_application!'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/environment_argument.rb:31:in `require_application!'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:19:in `boot_application!'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands/dbconsole/dbconsole_command.rb:83:in `perform'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/command.rb:28:in `run'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:178:in `invoke_command'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor.rb:538:in `dispatch'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:73:in `perform'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:65:in `block in invoke'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:143:in `with_argv'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:63:in `invoke'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands.rb:18:in `<main>'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:18:in `<main>'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require': cannot load such file -- debug/prelude (LoadError)
from <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:63:in `block (2 levels) in require'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `each'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `block in require'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `each'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `require'
from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler.rb:215:in `require'
from /var/www/discourse/config/application.rb:55:in `<main>'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:15:in `require_application!'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/environment_argument.rb:31:in `require_application!'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:19:in `boot_application!'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands/dbconsole/dbconsole_command.rb:83:in `perform'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/command.rb:28:in `run'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:178:in `invoke_command'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor.rb:538:in `dispatch'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:73:in `perform'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:65:in `block in invoke'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:143:in `with_argv'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:63:in `invoke'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands.rb:18:in `<main>'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:18:in `<main>'
discourse@jerry-app:/var/www/discourse$
Mais comment résoudre ce problème d’accès à la base de données ?
J’ai installé discourse via docker (sans installer de plugins), puis j’ai installé mysql dans le conteneur, importé la base de données xenForo, puis utilisé le script de migration pour migrer xenForo vers discourse. J’ai dû modifier la configuration de Gemfile dans le conteneur pendant ce processus. Après une migration réussie, j’ai effectué plusieurs rebuilds pour les mises à jour.
Ma question est : pourquoi ai-je toujours des problèmes lors de l’exécution de bin/rails db même après avoir effectué plusieurs rebuilds et mises à jour de discourse ?