Mise à jour défectueuse : ERREUR : doit être le propriétaire de l'extension vector (PG::InsufficientPrivilege)

I, [2024-08-08T22:28:10.332254 #1]  INFO -- : cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
2024-08-08 22:28:18.660 UTC [1022] discourse@discourse ERROR:  must be owner of extension vector
2024-08-08 22:28:18.660 UTC [1022] discourse@discourse STATEMENT:  ALTER EXTENSION vector UPDATE TO '0.7.0';
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

ERROR:  must be owner of extension vector
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-3.3.1/lib/patches/db/pg.rb:110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-3.3.1/lib/patches/db/pg.rb:110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `block in with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3.4/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:181:in `exec'
/var/www/discourse/plugins/discourse-ai/db/migrate/20240611170904_upgrade_pgvector_070.rb:10:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:989:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:989:in `exec_migration'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `block in exec_migration'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:970:in `block (2 levels) in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:969:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:227:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:968:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:1600:in `with_advisory_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:1448:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:1274:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/migration.rb:1249:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/tasks/database_tasks.rb:243:in `migrate'
/var/www/discourse/lib/tasks/db.rake:259:in `block (2 levels) in <main>'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/lib/tasks/db.rake:234:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'

Caused by:
PG::InsufficientPrivilege: ERROR:  must be owner of extension vector (PG::InsufficientPrivilege)

Deux lignes ressortent :

  • 2024-08-08 22:28:18.660 UTC [1022] discourse@discourse ERROR: must be owner of extension vector
    2024-08-08 22:28:18.660 UTC [1022] discourse@discourse STATEMENT: ALTER EXTENSION vector UPDATE TO ‘0.7.0’;
    rake aborted!
  • PG::InsufficientPrivilege: ERROR: must be owner of extension vector (PG::InsufficientPrivilege)

Cela fait environ 1 à 2 semaines depuis ma dernière mise à niveau, quelqu’un peut-il reproduire cela, ou avez-vous des conseils ?

EDIT : J’ai désactivé discourse-ai - la reconstruction se déroule maintenant sans problème.

2 « J'aime »

Est-ce une installation standard avec un seul conteneur ?

Oui, c’est le cas, installé il y a quelques années en suivant le guide officiel.

1 « J'aime »
3 « J'aime »

Oui, il est toujours là — parce que j’ai oublié de vérifier si c’est fusionné ou si c’est toujours ouvert :man_facepalming:

1 « J'aime »

C’est fusionné maintenant

Je suis désolé, mais cela signifie-t-il que ce problème est résolu ? J’ai un problème similaire à celui discuté ici.

Oui, essayez de mettre à jour votre site via une reconstruction.

3 « J'aime »

Hélas, cela a échoué.

Plus d’informations ont été collées par moi dans ce sujet, si cela peut aider.
Veuillez également noter que le mien est une configuration à 2 conteneurs.

Aussi, si cela est lié :

:/var/www/discourse# LOAD_PLUGINS=1 bundle exec rake db:migrate
fatal: detected dubious ownership in repository at '/var/www/discourse'
To add an exception for this directory, call:
     git config --global --add safe.directory /var/www/discourse

Pour moi, ça a fonctionné

1 « J'aime »

Comme toujours, si vous avez une configuration à deux conteneurs, vous devez mettre à jour les deux.

1 « J'aime »

Je peux confirmer que la correction a résolu le problème pour moi. Merci !

3 « J'aime »

Merci, je ne le savais pas.

Mais quand j’ai essayé de démarrer mon conteneur ‘data’, j’obtiens cette erreur :

Dois-je d’abord arrêter mon conteneur ‘Web_only’ ? Bien que j’aie également essayé de le faire, par mesure de précaution.

Ce sujet a été automatiquement fermé après 3 jours. Les nouvelles réponses ne sont plus autorisées.