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

# Migrar do MySQL para PostgreSQL

> Guia passo a passo para exportar schemas MySQL com mysqldump, executar a análise no MigraFlow CLI e gerar scripts de migração prontos para PostgreSQL.

## Exportar o schema MySQL

```bash theme={null}
mysqldump --no-data -u root -p meu_banco > schema_legado.sql
```

## Executar a análise

```bash theme={null}
migraflow schema_mysql.sql "e-commerce MySQL 5.7" --api-key mk_consultant_xxx --review
```

## Conversões automáticas

| MySQL                     | PostgreSQL          |
| ------------------------- | ------------------- |
| `AUTO_INCREMENT`          | `BIGSERIAL`         |
| `TINYINT(1)`              | `BOOLEAN`           |
| `DATETIME`                | `TIMESTAMP`         |
| `ENUM('a','b')`           | `VARCHAR` + `CHECK` |
| `MEDIUMTEXT` / `LONGTEXT` | `TEXT`              |
| `BLOB`                    | `BYTEA`             |
| `ENGINE=InnoDB`           | removido            |
| `UNSIGNED`                | `CHECK (col >= 0)`  |

## Riscos comuns em schemas MySQL

<AccordionGroup>
  <Accordion title="ENUM">
    **Risco MÉDIO.** ENUMs viram `VARCHAR` com `CHECK constraint`. Considere criar uma tabela de lookup para ENUMs com muitos valores.
  </Accordion>

  <Accordion title="Zero dates (0000-00-00)">
    **Risco CRÍTICO.** MySQL permite datas inválidas como `0000-00-00`. PostgreSQL rejeita. Precisa de limpeza nos dados antes da migração.
  </Accordion>

  <Accordion title="Case sensitivity">
    **Risco MÉDIO.** MySQL no Windows é case-insensitive para nomes de tabelas. PostgreSQL é case-sensitive. Verifique queries da aplicação.
  </Accordion>
</AccordionGroup>
