> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airys.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Como atualizar para o AirysChat v4?

> Guia completo para atualização para o AirysChat v4 com suporte PostgreSQL pgvector

O AirysChat v4 requer PostgreSQL com suporte a `pgvector`. Você precisa garantir que a versão do PostgreSQL que você está executando suporte `pgvector` antes de atualizar.

## Tipo de Implantação

### Linux

* Se você estiver usando um PostgreSQL gerenciado, consulte a seção **PostgreSQL Gerenciado** abaixo.
* Se você estiver usando um PostgreSQL auto-hospedado, continue lendo.

### Docker

* Se você estiver usando um PostgreSQL gerenciado, consulte a seção **PostgreSQL Gerenciado** abaixo.
* Se você estiver usando um PostgreSQL auto-hospedado, continue lendo.

### Kubernetes (Helm)

* Se você estiver usando um PostgreSQL gerenciado, consulte a seção **PostgreSQL Gerenciado** abaixo.
* Se você estiver usando um PostgreSQL auto-hospedado, continue lendo.

### Heroku

* Nenhuma ação é necessária se você estiver usando o Heroku PostgreSQL.
* Se você estiver usando outro PostgreSQL gerenciado, consulte a seção **PostgreSQL Gerenciado** abaixo.

## PostgreSQL

A seção PostgreSQL é dividida em partes com base em como você está executando o PostgreSQL:

1. **PostgreSQL Gerenciado** de provedores de nuvem como AWS, GCP, Azure, Heroku, etc.
2. **PostgreSQL auto-hospedado** no Linux, Docker ou Kubernetes via Helm charts.

### PostgreSQL Gerenciado

#### AWS RDS

Nenhuma ação é necessária se você estiver na versão mais recente do RDS.\
[Saiba mais](https://aws.amazon.com/about-aws/whats-new/2023/10/amazon-rds-postgresql-pgvector-hnsw-indexing/)

#### Google Cloud (Cloud SQL)

Nenhuma ação é necessária.\
[Saiba mais](https://cloud.google.com/blog/products/databases/using-pgvector-llms-and-langchain-with-google-cloud-databases)

#### Heroku PostgreSQL

A extensão `pgvector` é suportada. Nenhuma ação é necessária.\
[Saiba mais](https://devcenter.heroku.com/articles/pgvector-heroku-postgres)

#### Azure PostgreSQL

Para habilitar o `pgvector` no seu banco de dados Azure para a instância de servidor flexível PostgreSQL:

1. Adicione o `pgvector` à sua lista de permissões, conforme descrito na documentação de extensões do PostgreSQL.
2. Verifique se foi adicionado corretamente executando:
   ```sql theme={null}
   SHOW azure.extensions;
   ```

[Saiba mais](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/how-to-use-pgvector#enable-extension)

***

## PostgreSQL Auto-hospedado

### Linux VM

#### Instalação Existente

Instale a extensão `pgvector` para sua versão do PostgreSQL e execute a atualização:

```bash theme={null}
# Find your PostgreSQL version
psql --version

# If its version 16, use the following command
# Replace "16" with your PostgreSQL version
sudo apt install postgresql-16-pgvector
```

### Docker Container

#### Instalação Existente

1. Substitua a imagem do PostgreSQL pela imagem do pgvector. A imagem do pgvector é uma substituição direta e funciona com seus dados existentes:

   ```bash theme={null}
   docker compose down

   # Edit and replace the PostgreSQL image in docker-compose.yaml
   vi docker-compose.yaml

   # Replace PostgreSQL image tag
   # Example: replace
   # image: postgres:12
   # with
   # image: pgvector/pgvector:pg12

   # Ensure the pg tag number matches your PostgreSQL version
   docker compose pull

   # Verify the updated setup
   docker compose up -d
   ```

2. Após verificar que a instalação existente funciona com a imagem do pgvector, prossiga com as etapas de atualização regulares.
   [Saiba mais](https://www.airyschat.com/docs/self-hosted/deployment/upgrade#docker)

### Kubernetes (Helm Chart)

Se você usar o PostgreSQL embutido através do Helm chart oficial, siga os passos abaixo. O PostgreSQL empacotado pela Bitnami usado no Helm chart não suporta a extensão pgvector. Para resolver isso, construímos uma imagem Postgres personalizada com suporte ao `pgvector`.

<Note>
  Isto é aplicável apenas se você estiver usando o Postgres embutido com helm charts. Consulte a seção de documentação gerenciada se você estiver usando AWS RDS ou algo similar.
</Note>

1. Crie um arquivo `values.v4-upgrade.yaml` com o seguinte conteúdo:

   ```yaml theme={null}
   image:
     repository: airyschat/airyschat
     tag: v4.0.1
     pullPolicy: IfNotPresent

   postgresql:
     image:
       registry: ghcr.io
       repository: airyschat/pgvector
   ```

2. Execute o `helm upgrade` com este arquivo values.yaml personalizado.
