# Erro Bootstrap: relação "ai\_agent\_mcp\_servers" não existe

**URL:** https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572
**Category:** Self-hosting
**Created:** [30 Março , 2026 15:36 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572 "2026-03-30T15:36:48Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30 Março , 2026 15:36 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/1 "2026-03-30T15:36:48Z")

</div>

O Bootstrap está falhando com o seguinte erro:

```plaintext
PG::UndefinedTable: ERRO: a relação "ai_agent_mcp_servers" não existe

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30 Março , 2026 15:47 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/2 "2026-03-30T15:47:22Z")

</div>

Então, aqui está um relatório de bug que o [ask.discourse.com](http://ask.discourse.com) escreveu, mas primeiro, quero compartilhar essa parte que ele ofereceu:

> [@](#):
>
> Se quiser, também posso torná-lo um pouco mais **direto e conciso ao estilo pfaffman**.

Decidi deixá-lo como é, e não “direto e conciso”. 🤣 (Eu não rolei no chão, mas realmente, ri em voz alta.)

Parece um relatório credível e provavelmente melhor do que eu teria escrito.

### Relatório de bug do ask . . .

Aqui está um relatório de bug conciso que você pode publicar no Meta:

````plaintext
Após a atualização, o bootstrap falha durante `db:migrate` com:

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

````

A migração com falha é:

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

```

Parece que esta migração tenta adicionar uma coluna à `ai_agent_mcp_servers` antes que essa tabela exista.

Parte relevante do log:

```plaintext
== 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

```

Isso parece ser um problema de ordem de migração no `discourse-ai`, ou uma migração anterior ausente que deveria criar a `ai_agent_mcp_servers`.

Ambiente:

- Instalação oficial do Docker
- bootstrap falha em `bundle exec rake db:migrate`
- plugins mostrados nos logs incluem `discourse-citationwizard` e `discourse-prometheus`

Relatório completo / logs:  
[Erro de bootstrap: relation “ai\_agent\_mcp\_servers” does not exist](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist/399572)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30 Março , 2026 15:53 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/3 "2026-03-30T15:53:58Z")

</div>

Eu precisava saber como soaria. . . .

Claro — aqui está uma versão mais **estilo pfaffman** :

````markdown
Isso parece ser um bug de migração do `discourse-ai`.

O Bootstrap falha em:

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

````

com:

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

```

Ou seja, essa migração está tentando alterar uma tabela que ainda não foi criada.

Log relevante:

```plaintext
== 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

```

Parece que ou:

- a ordem da migração está errada, ou
- a migração que cria `ai_agent_mcp_servers` está ausente / não está sendo detectada.

Relatório original e logs completos:  
[Erro de Bootstrap: relation “ai\_agent\_mcp\_servers” does not exist](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist/399572)

```plaintext

Se quiser, posso torná-la ainda mais concisa/desafiadora.
```

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [30 Março , 2026 15:55 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/4 "2026-03-30T15:55:11Z")

</div>

> [@pfaffman](#):
>
> Isso parece ser um problema de ordem de migração no `discourse-ai`, ou uma migração anterior ausente que deveria criar `ai_agent_mcp_servers`.

> <https://github.com/discourse/discourse/blob/61da54b543168f33e499b806bc3f313a3a2ab2f3/plugins/discourse-ai/db/migrate/20260319000001_create_ai_agent_mcp_servers.rb#L5C5-L9C8>

> <https://github.com/discourse/discourse/blob/61da54b543168f33e499b806bc3f313a3a2ab2f3/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb#L5C12-L5C12>

Estes parecem estar na ordem correta…

Você vê alguma evidência nos logs de que o primeiro foi executado?

(A propósito, prefiro seu relatório original escrito por humanos no OP. Ele se mantém nos fatos e não chega a conclusões potencialmente incorretas)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30 Março , 2026 16:22 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/5 "2026-03-30T16:22:46Z")

</div>

Aha. Aqui está o que aconteceu. Parece que foi porque ambos usamos IA e ela é estúpida e preguiçosa. Uma explicação alternativa é que foi má sorte, mas parece que o Claude (foi o que eu usei) não recebe um carimbo de hora e data (NÃO É LEGAL, Claude), apenas um carimbo de data e depois adiciona um contador, então ambos estávamos trabalhando no mesmo dia.

Aqui estão as últimas migrações que foram executadas:

```plaintext
   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 o discourse-citationwizard (que suporta [https://www.citationwizard.net/](https://www.citationwizard.net/), uma ferramenta de citação/referência para acadêmicos) fez uma migração no mesmo dia. Eu achei aquela migração suspeita, mas não imaginei que haveria implicações como essas…

Então é por isso que [plugins/discourse-ai/db/migrate/20260319000001\_create\_ai\_agent\_mcp\_servers.rb](https://github.com/discourse/discourse/blob/61da54b543168f33e499b806bc3f313a3a2ab2f3/plugins/discourse-ai/db/migrate/20260319000001_create_ai_agent_mcp_servers.rb#L5C5-L9C8) não pode ser executado.

E eu tive a má sorte de minha migração ter sido executada primeiro (é mais fácil alterar meu código do que o seu). Estou tentando agora ver se consigo renomear minhas migrações na tabela de migração…

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [30 Março , 2026 16:27 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/6 "2026-03-30T16:27:28Z")

</div>

> [@pfaffman](#):
>
> Parece que o Claude (que é o que eu usei) não recebe um carimbo de hora (NÃO É LEGAL, Claude), mas apenas um carimbo de data e depois adiciona um contador.

:facepalm:

Temos essa instrução no `AI-AGENTS.md`:

> <https://github.com/discourse/discourse/blob/61da54b543168f33e499b806bc3f313a3a2ab2f3/AI-AGENTS.md#L99C38-L99C41>

Mas acho que ele está ignorando 🤷

@sam, você usou alguma habilidade ou prompt específico para fazer essas migrações do discourse-ai? Se pudermos tentar usar carimbos de hora reais em vez de números suspeitamente específicos que terminam em 0000, isso realmente ajudaria a evitar colisões 🤔

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30 Março , 2026 17:01 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/7 "2026-03-30T17:01:29Z")

</div>

E eu executei isso diretamente no seu repositório para aproveitar seu conhecimento superior em IA. E agora estou vindicado ao saber que uma equipe de especialistas não consegue fazer melhor do que eu!

Então, sim, Claude, POR QUE NÃO USAR GENERATE MIGRATION!?!?!?

Mudei a versão da migração no banco de dados assim:

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

```

E renomeei a migração no meu plugin para combinar. Isso resolveu!

Poderia culpar a mim mesmo por não puxar do `discourse main` com tanta frequência quanto deveria, mas foi no mesmo dia, então mesmo que eu fizesse isso todos os dias, não teria ajudado. Acho que deveria puxar do `main` e executar as migrações mais uma vez antes de fazer o push, talvez. Mas não vou deixar uma migração como essa acontecer novamente.

Muito obrigado pela sua ajuda. Este foi definitivamente um caso de borda estranho que nunca aconteceria se não estivéssemos ambos usando IA no mesmo dia.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [30 Março , 2026 21:12 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/8 "2026-03-30T21:12:22Z")

</div>

Sim, essa instrução é ignorada com bastante frequência. Tenho que ficar corrigindo isso.

Posso tentar adicionar uma habilidade de “como fazer migrações”, mas talvez a solução mais direta aqui seja um lint. Não tenho certeza.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [31 Março , 2026 14:27 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/9 "2026-03-31T14:27:00Z")

</div>

> [@sam](#):
>
> talvez a correção definitiva aqui seja um lint

Sim, isso pode funcionar. Como o lint não é IA, ele sempre escuta.

Se ele for ignorar o pedido para fazer o Rails criar a migração, talvez uma regra que especifique explicitamente qual deve ser o ID/nome do arquivo da migração funcione.

Vou ficar atento às migrações que terminam em 00001 para ter certeza. Agora que sei que é perigoso e não apenas curioso, provavelmente não vou esquecer.

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2 Abril , 2026 14:30 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/10 "2026-04-02T14:30:08Z")

</div>

Tive que refazer uma migração que estava falhando devido a esse problema.

Meu amigo não ficou nada feliz com isso, embora

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/4/3/943dda7403c8bf18b06b66d773ed8a9a1ca0e2db.png)

🤣

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2 Abril , 2026 15:48 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/11 "2026-04-02T15:48:44Z")

</div>

Meu amigo não tem muita personalidade. Não sei se estou aliviado ou com inveja! 🤣

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2 Maio , 2026 15:48 UTC](https://meta.discourse.org/t/bootstrap-error-relation-ai-agent-mcp-servers-does-not-exist-due-to-migration-id-collision/399572/12 "2026-05-02T15:48:50Z")

</div>

Este tópico foi automaticamente fechado 30 dias após a última resposta. Novas respostas não são mais permitidas.
