Après la mise à jour, le site ne s'est pas ouvert et la base de données de sauvegarde n'a pas été chargée

J’ai mis à jour le site, puis il a commencé à afficher des erreurs nginx. Je ne pouvais pas accéder au site. Quoi que je fasse, cela ne fonctionnait pas. J’ai donc effectué une nouvelle installation et j’ai essayé d’ajouter la nourriture d’hier. Cependant, je n’ai pas non plus réussi. Je reçois l’erreur suivante lors de l’installation de la sauvegarde :

error complete :

CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
ERROR:  unrecognized parameter "dims"
EXCEPTION: psql failed: ERROR:  unrecognized parameter "dims"
/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-02-18-120937' directory...
Unpausing sidekiq...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.

lors de la mise à jour de app.yml utilisé pour construire les codes pgembeddings

hooks:
  after_code:
    - exec:
        cd: $home
        cmd:
          - sudo apt-get install wget ca-certificates
    - exec:
        cd: $home
        cmd:
          - wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    - exec:
        cd: $home
        cmd:
          - sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
    - exec:
        cd: $home
        cmd:
          - apt-get update
    - exec:
        cd: $home
        cmd:
          - apt-get -y install -y postgresql-server-dev-${PG_MAJOR}
    - exec:
        cd: $home/tmp
        cmd:
          - git clone https://github.com/neondatabase/pg_embedding.git
    - exec:
        cd: $home/tmp/pg_embedding
        cmd:
          - make PG_CONFIG=/usr/lib/postgresql/13/bin/pg_config
    - exec:
        cd: $home/tmp/pg_embedding
        cmd:
          - make PG_CONFIG=/usr/lib/postgresql/13/bin/pg_config install
    - exec:
        cd: $home
        cmd:
          - su postgres -c 'psql discourse -c "create extension if not exists embedding;"'
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-question-answer.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-gamification.git
          - git clone https://github.com/discourse/discourse-restricted-replies.git
          - git clone https://github.com/discourse/discourse-saved-searches.git
          - git clone https://github.com/discourse/discourse-follow.git
          - git clone https://github.com/discourse/discourse-yearly-review.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/discourse/discourse-no-bump.git
          - git clone https://github.com/discourse/discourse-math.git
          - git clone https://github.com/discourse/discourse-akismet.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/spirobel/discourse-matheditor.git
          - git clone https://github.com/discourse/discourse-google-one-tap.git
          - git clone https://github.com/merefield/discourse-chatbot.git
          - git clone https://github.com/discourse/discourse-ai.git
#          - git clone https://github.com/paviliondev/discourse-custom-wizard.git
          - git clone https://github.com/discourse/discourse-reactions.git
#          - git clone https://github.com/discourse/discourse-subscriptions.git

J’ai examiné cela avec @kuaza en raison de son expérience avec mon plugin.

Nous avons supprimé l’index problématique de dump.sql qui causait l’erreur ci-dessus et l’avons restauré.

Il y avait un script mis à jour pour supprimer cet index, mais certains utilisateurs du plugin n’ont peut-être pas vu la mise à jour.

Nous avons maintenant une accumulation, mais il n’y a pas de connexion depuis le navigateur.

Nous avons à nouveau le conteneur opérationnel sans l’index problématique et tout l’ancien script dans app.yml pour construire pgembedding a été supprimé, donc c’est propre mais avec des plugins.

le conteneur est démarré - vous pouvez y accéder sans problème.

psql apparemment démarré - vous pouvez démarrer l’invite de la base de données dans le conteneur sans problème.

dans le conteneur, vous pouvez ouvrir rails c sans problème.

/var/discourse/shared/standalone/log/rails# tail -n 200 production.log

n’affiche aucun message d’erreur évident.

Je suis actuellement bloqué.

Des idées sur d’autres choses à vérifier ?

1 « J'aime »

J’ai manqué une vérification…

en entrant dans le conteneur et en faisant ceci :

curl 0.0.0.0:3000

Je vais essayer ça ensuite…

2 « J'aime »

Lorsque vous faites cela, les codes de la page de configuration HTML apparaissent. Je pense que le problème est causé par le DNS. Et ces absurdités me détruisent.

Lorsque j’ai exécuté cela, cela semblait fonctionner, mais en réalité, le problème était que le serveur web ne fonctionnait pas et nous ne pouvons pas le comprendre de cette façon. Lorsque nous entrons dans le conteneur et exécutons ce code, nous pouvons voir si nginx fonctionne ou non :

nginx -t

Cependant, je voudrais répondre au problème dans ce sujet en copiant la solution de votre message. Le problème nginx est complètement différent, je le teste sur un domaine séparé avec une installation fraîche. S’il donne à nouveau une erreur, j’ouvrirai un problème séparé et le signalerai.

Le problème de la sauvegarde qui ne fonctionne pas dans le sujet est causé par une table ou un enregistrement qui n’est plus utilisé. Je pense que c’était un enregistrement que le plugin chatbot n’utilise plus, mais qui n’a pas été supprimé lors de la mise à jour. Je pense que l’ami auteur du plugin a résolu ce problème, vous pouvez être tranquille :slight_smile: J’ai supprimé la ligne d’erreur, l’ai reconditionné et l’ai installé depuis le panneau d’administration, cela fonctionne sans aucun problème. Ou vous pouvez également le télécharger depuis le serveur :

Explication de la correction du fichier de plugin corrompu :

  • Décompresser une sauvegarde : tar -xvzf foo.tar.gz
  • Décompresser le fichier dump.sql
  • Supprimer les lignes incriminées qui construisent l’index indésirable :
--
-- TOC entry 8020 (class 1259 OID 84313)
-- Name: hnsw_index_on_chatbot_post_embeddings; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX hnsw_index_on_chatbot_post_embeddings ON public.chatbot_post_embeddings_old USING hnsw (embedding) WITH (dims='1536', m='64', efconstruction='64', efsearch='64');
  • Compresser à nouveau le fichier dump.sql
  • Combiner dans un répertoire avec votre dossier d’uploads
  • Compresser l’ensemble à nouveau
  • Restaurer manuellement ce fichier

S’il vous donne l’erreur d’une table différente, je pense que cela sera résolu si vous supprimez la table contenant cet enregistrement en utilisant la méthode ci-dessus.

Mon site, sur lequel j’ai travaillé dur et qui commençait à se développer, a été hors service pendant deux jours. N’oublions pas une nuit blanche et une journée. Il y a toujours la possibilité que de tels événements nous arrivent. N’oubliez pas de faire une sauvegarde et de vérifier qu’elle fonctionne. Je tiens à remercier mon frère @merefield pour son aide pendant ce processus. Nous avons appris de nouvelles choses ensemble.

3 « J'aime »

Cette méthode a fonctionné pour moi lorsque j’ai rencontré la même erreur. Merci d’avoir publié ceci.

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.