J’ai configuré mes forums en utilisant discourse-docker avec la configuration autonome par défaut. Je dois passer à l’utilisation d’un serveur postgres séparé.
J’ai effectué une sauvegarde, puis modifié app.yml, reconstruit et tenté de restaurer à partir de la sauvegarde via la ligne de commande. La restauration échoue, et il semble que la restauration utilisait l’hôte correct pour accéder à postgres, mais elle utilisait le port par défaut (5432) plutôt que celui que j’ai configuré (9432).
Erreur :
psql: error: connection to server at "[REDACTED HOST]" ([REDACTED IP]), port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
EXCEPTION: psql failed: Is the server running on that host and accepting TCP/IP connections?
/var/www/discourse/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:51:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor.rb:527:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor/base.rb:584:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli.rb:451:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/exe/bundle:28:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/exe/bundle:20:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Trying to rollback...
Rolling back...
Cleaning stuff up...
Dropping functions from the discourse_functions schema...
Removing tmp '/var/www/discourse/tmp/restores/default/2024-01-17-201724' directory...
Unpausing sidekiq...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Configuration :
Dans app.yml, sous templates:, j’ai commenté - "templates/postgres.template.yml"
Lorsque vous avez reconstruit, a-t-il généré un nouveau site vierge ? Sinon, vous avez un problème.
Pouvez-vous accéder à la base de données depuis l’intérieur du conteneur avec psql \u003cquelques commutateurs pour pointer vers la base de données\u003e)
À l’intérieur du conteneur, si vous faites un set|grep DB, voyez-vous vos variables d’environnement ?
Oui aux trois. Il génère un nouveau site vierge, connecté à la bonne base de données. Les variables d’environnement sont définies lorsque je les recherche avec grep, et je peux me connecter manuellement à la base de données depuis le conteneur.
Il y a une faible possibilité que, d’une manière ou d’une autre, le script de restauration ne respecte pas les variables d’environnement (mais que tout le reste le fasse ?). Les moyens de vérifier cela sont de regarder le code et d’essayer de faire une restauration à partir de l’interface utilisateur. Si vous pouvez restaurer à partir de l’interface utilisateur, je pense que vous pourriez déplacer cela vers Bug.