Skip to content

[BUG] Prisma migrations fail in v2.3.4 when DATABASE_URL points to a custom schema #2069

@leoslg

Description

@leoslg

📋 Bug Description

Desde a imagem evoapicloud/evolution-api:v2.3.4, as migrações Prisma padrão não respeitam o schema informado na variável DATABASE_URL (…?schema=evoapi_schema). Uma das novas migrações (20250918182355_add_kafka_integration) usa o schema public hardcoded, causando erro P3009 em bancos que não utilizam public.

🔄 Steps to Reproduce

Database no PostgreSQL com schema customizado e apontar DATABASE_URL para ele (?schema={custom_schema}).
Subir o container evoapicloud/evolution-api:v2.3.4.
Container roda npx prisma migrate deploy.
Prisma tenta aplicar prisma/postgresql-migrations/20250918182355_add_kafka_integration/migration.sql.

✅ Expected Behavior

A migração deveria criar a tabela Kafka dentro do schema definido na DATABASE_URL (no caso, evoapi_schema) e concluir sem erros.

❌ Actual Behavior

A migração falha com Error: P3009 e o stack mostra ERROR: relation "public.Instance" does not exist. O script cria a tabela no schema public (CREATE TABLE "public"."Kafka" …) e adiciona um FK referenciando public."Instance", ignorando o schema configurado.

🌍 Environment

Docker image: evoapicloud/evolution-api:v2.3.4
Banco: PostgreSQL 16
DATABASE_URL=postgres://evoapi_db:***@postgres:5454/evoapi_storage?schema=evoapi_schema
Prisma executado via npm run db:deploy dentro do container.

📋 Logs

evolution-api_1 | > evolution-api@2.3.4 db:deploy
evolution-api_1 | > node runWithProvider.js "rm -rf ./prisma/migrations && cp -r ./prisma/DATABASE_PROVIDER-migrations ./prisma/migrations && npx prisma migrate deploy --schema ./prisma/DATABASE_PROVIDER-schema.prisma"
evolution-api_1 |
evolution-api_1 | Environment variables loaded from .env
evolution-api_1 | Prisma schema loaded from prisma/postgresql-schema.prisma
evolution-api_1 | Datasource "db": PostgreSQL database "evoapi_storage", schema "evoapi_schema" at "postgres:5454"
evolution-api_1 |
evolution-api_1 | 56 migrations found in prisma/migrations
evolution-api_1 |
evolution-api_1 | Error: P3009
evolution-api_1 |
evolution-api_1 | migrate found failed migrations in the target database, new migrations will not be applied. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve
evolution-api_1 | The 20250918182355_add_kafka_integration migration started at 2025-09-25 15:39:46.132704 UTC failed
evolution-api_1 |
evolution-api_1 |
evolution-api_1 | Error executing command: rm -rf ./prisma/migrations && cp -r ./prisma/postgresql-migrations ./prisma/migrations && npx prisma migrate deploy --schema ./prisma/postgresql-schema.prisma
evolution-api_1 | Migration failed

📝 Additional Context

Arquivo problemático: prisma/postgresql-migrations/20250918182355_add_kafka_integration/migration.sql.

A atualização bloqueia qualquer instalação que mantenha as tabelas da EvolutionAPI fora do schema public, inclusive setups antigos que funcionavam até versões anteriores.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions