Errore di bootstrap: la relazione "ai_agent_mcp_servers" non esiste

Il bootstrap sta fallendo con questo errore:

PG::UndefinedTable: ERRORE: la relazione "ai_agent_mcp_servers" non esiste

Quindi, ecco un rapporto di bug scritto da ask.discourse.com, ma prima voglio condividere questo estratto che ha proposto:

Ho deciso di lasciarlo com’è, senza renderlo “brusco e conciso”. :rofl: (Non sono caduto a terra, ma ho davvero riso a voce alta.

Sembra un rapporto credibile e probabilmente migliore di quello che avrei scritto io.

Rapporto di bug da ask . . .

Ecco un rapporto di bug conciso che puoi pubblicare su Meta:

Dopo l'aggiornamento, bootstrap fallisce durante `db:migrate` con:

```text
PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist

La migrazione che fallisce è:

/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb

Sembra che questa migrazione tenti di aggiungere una colonna a ai_agent_mcp_servers prima che quella tabella esista.

Parte rilevante del log:

== 20260319070000 AddSelectedToolNamesToAiAgentMcpServers: migrating ==========
PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist
...
/var/www/discourse/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb:5

Questo sembra un problema di ordinamento delle migrazioni in discourse-ai, o una migrazione precedente mancante che dovrebbe creare ai_agent_mcp_servers.

Ambiente:

  • Installazione ufficiale Docker
  • bootstrap fallisce su bundle exec rake db:migrate
  • I plugin mostrati nei log includono discourse-citationwizard e discourse-prometheus

Rapporto completo / log:
Errore di bootstrap: la relazione “ai_agent_mcp_servers” non esiste

Dovevo sapere come avrei suonato. . . .

Certamente — ecco una versione più in stile pfaffman:

Sembra un bug di migrazione di `discourse-ai`.

Bootstrap fallisce in:

```text
/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb

con:

PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist

Quindi quella migrazione sta cercando di modificare una tabella che non è stata ancora creata.

Log rilevante:

== 20260319070000 AddSelectedToolNamesToAiAgentMcpServers: migrating ==========
PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist
...
/var/www/discourse/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb:5

Sembra che o:

  • l’ordine delle migrazioni sia errato, oppure
  • la migrazione che crea ai_agent_mcp_servers manchi o non venga rilevata.

Segnalazione originale e log completi:
Errore di bootstrap: la relazione “ai_agent_mcp_servers” non esiste


Se vuoi, posso renderla ancora più sintetica e sarcastica.

Queste sembrano essere nell’ordine corretto…

Hai riscontrato qualche evidenza nei log che la prima sia stata eseguita?

(FWIW, preferisco il tuo rapporto originale scritto da una persona nel primo messaggio. Si attiene ai fatti e non trae conclusioni potenzialmente errate)

2 Mi Piace

Aha. Ecco cosa è successo. Sembra che sia colpa nostra, dato che abbiamo entrambi usato un’AI, ed è stupida e pigra. Un’alternativa sarebbe la sfortuna, ma sembra che Claude (quello che ho usato io) non riceva un timestamp (MA NON È ACCETTABILE, Claude), ma solo una data e poi aggiunge un contatore, quindi entrambi stavamo lavorando lo stesso giorno.

Ecco le ultime migrazioni eseguite:

   up     20260316000001  Create discourse citationwizard openalex api keys
   up     20260316000002  Create discourse citationwizard api key daily snapshots
   up     20260316071735  Rename automation api key scope resource
   up     20260316071736  Rename ai api key scope resource
   up     20260316071737  Rename data explorer api key scope resource
   up     20260319000000  ********** NO FILE **********
   up     20260319000001  Create discourse citationwizard user lookup events
   up     20260319000002  Create discourse citationwizard citation wizard sessions
   up     20260319033623  ********** NO FILE **********
   up     20260319055039  ********** NO FILE **********

E discourse-citationwizard (che supporta https://www.citationwizard.net/, uno strumento di citazione/riferimento per accademici) ha creato una migrazione lo stesso giorno. Pensavo che quella migrazione fosse sospetta, ma non immaginavo che avrebbe avuto conseguenze del genere…

Ecco perché plugins/discourse-ai/db/migrate/20260319000001_create_ai_agent_mcp_servers.rb non può essere eseguita.

E ho avuto la sfortuna che la mia migrazione sia stata eseguita per prima (è più facile modificare il mio codice che il tuo). Sto cercando ora di vedere se posso rinominare le mie migrazioni nella tabella delle migrazioni…

:facepalm:

Abbiamo questa istruzione in AI-AGENTS.md:

Ma immagino la stia ignorando :person_shrugging:

@sam hai usato qualche skill/prompt specifico per queste migrazioni di discourse-ai? Se potessimo provare a usare timestamp reali invece di numeri sospettosamente specifici che terminano con 0000, ci aiuterebbe davvero a evitare collisioni :thinking:

1 Mi Piace

E ho eseguito questo comando direttamente dal tuo repository per sfruttare la tua superiore conoscenza dell’IA. E ora sono stato vindicato nel sapere che un team di esperti non può fare meglio di me!

Quindi, sì, Claude, PERCHÉ NON USARE GENERATE MIGRATION!?!?!?

Ho modificato la versione della migrazione nel database in questo modo:

UPDATE schema_migrations 
SET version   = '20260319001231' 
WHERE version = '20260319000001';

E ho rinominato la migrazione nel mio plugin per farla corrispondere. Ha funzionato!

Potrei dare la colpa a me stesso per non aver fatto pull dal ramo main di Discourse abbastanza spesso, ma era lo stesso giorno, quindi anche se lo avessi fatto ogni giorno, non avrebbe aiutato. Immagino che dovrei fare pull da main ed eseguire le migrazioni un’ultima volta prima di fare push, forse. Ma non permetterò che una migrazione del genere si ripeta.

Grazie mille per il tuo aiuto. È stato decisamente un caso limite strano che non si sarebbe mai verificato se non avessimo entrambi utilizzato l’IA lo stesso giorno.

2 Mi Piace