Sto provando il multisito, ho installato la seconda istanza e funziona alla grande.
Ma ora non riesco più a ricostruire. I log mostrano:
warning " > babel-plugin-debug-macros@0.4.0-pre1" has unmet peer dependency "@babel/core@^7.0.0".
warning "workspace-aggregator-ffab61d1-8b70-4cda-8f38-dde575adc062 > discourse > @uppy/xhr-upload@3.1.0" has incorrect peer dependency "@uppy/core@^3.0.6".
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "idx_category_users_user_id_category_id"
DETAIL: Key (user_id, category_id)=(-4, 9) already exists
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 695 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:\nmigrate'"]}
bootstrap failed with exit code 1
Ho provato senza plugin e continua a essere rotto. Riesco ad avviare l’app ma non a ricostruire.
Falco
(Falco)
14 Marzo 2023, 2:27am
2
Sì e ho provato a disinstallarlo (perché ho visto che non posso testare i plugin in multisite senza selezionarli manualmente).
Falco
(Falco)
14 Marzo 2023, 2:38am
4
Quell’errore proviene da esso, dovrai correggere manualmente il record del database e rimuovere i duplicati anche dopo aver disinstallato un plugin, poiché ciò che aggiunge a un database è permanente.
2 Mi Piace
Grazie. Puoi confermare se è quello che sto cercando?
discourse=# \d category_users
Table "public.category_users"
Column | Type | Collation | Nullable | Default
--------------------+-----------------------------+-----------+----------+--------------------------------------------
id | integer | | not null | nextval('category_users_id_seq'::regclass)
category_id | integer | | not null |
user_id | integer | | not null |
notification_level | integer | | not null |
last_seen_at | timestamp without time zone | | |
Indexes:
"category_users_pkey" PRIMARY KEY, btree (id)
"idx_category_users_category_id_user_id" UNIQUE, btree (category_id, user_id)
"index_category_users_on_user_id_and_last_seen_at" btree (user_id, last_seen_at)
Ho provato DROP INDEX idx_category_users_category_id_user_id ma apprezzerei davvero il comando preciso qui
Hmmm, presumibilmente decine di installazioni e nessun problema di questo tipo di cui sono a conoscenza.
Qual è il problema specifico qui?
Lo script delle fixture popola l’utente del bot (quindi l’amministratore non ha bisogno di accedere alla console di Rails) e questo potrebbe fallire se tentato due volte, ma c’è un controllo. Verificherò se il controllo è a prova di bomba. Questo viene eseguito due volte in questo tipo di installazione?
Non dovresti eliminare l’indice!
Devi solo eliminare il record duplicato.
Trova il secondo record con user_id= -4 e category_id 9 ed eliminalo usando il suo id
Questa è un’operazione rischiosa, quindi prima verifica con:
SELECT FROM category_users WHERE id = <il secondo id>;
per assicurarti che restituisca solo un record, quindi:
DELETE FROM category_users WHERE id = <il secondo id>;
Puoi ricordare quali modifiche hai apportato al bot, se ne hai apportate?
3 Mi Piace
Per aggiungere, non credo che tu debba rimuovere il plugin qui una volta risolto, ma sono molto curioso di sapere perché questo scenario si è verificato in primo luogo, dato che non ho avuto altre segnalazioni?
Grazie Robert, ho chiesto perché chiaramente non sono un esperto di DB e ho dei backup, ma è sempre meglio non fare deliberatamente la cosa sbagliata
Il bot non è stato modificato da me, ma sto usando le categorie predefinite su ogni gruppo e sembra che questo interrompa la tua implementazione.
Ci sono altre informazioni qui su Meta, spero tu possa scoprirlo e aggiungere alcuni controlli per evitare il problema:
Looks like your automatic watching groups have a duplicate in them. Not sure how this is possible, but can you try resetting the site setting for auto watching ?
2 Mi Piace
Ok, quindi forse non è interamente colpa mia
2 Mi Piace